<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Textfile einlesen und auswerten.]]></title><description><![CDATA[<p>Hallo zusammen ich habe mal eine Frage:</p>
<p>Und zwar hat jemand eine Idee, wie ich ein Textfile so einlesen kann, dass es in ein 2 dim Array umgewandelt werden kann?</p>
<p>Das Textfile schaut so aus:</p>
<p>5 2<br />
1 F<br />
3 F<br />
4 F<br />
12 G<br />
13 G<br />
14 G<br />
etc...<br />
(immer zwei Werte in einer Zeile)</p>
<p>Und zwar möchte ich hinterher ein Array haben das die Werte wie folgt gespeichert hat:</p>
<p>Array[0][0] --&gt; 5<br />
Array[0][1] --&gt; 2<br />
Array[1][0] --&gt; 1<br />
Array[1][1] --&gt; F<br />
Array[4][0] --&gt; 12<br />
Array[4][1] --&gt; G</p>
<p>Für das Einlesen habe ich folgendes Programmkonstrukt:</p>
<pre><code>int main(int argc, char** argv) {
  //Pruefen, ob wenigstens ein Programmparameter uebergeben wurde
  if(argc &lt; 2) {
    cout &lt;&lt; &quot;Bitte Dateinamen angeben!&quot; &lt;&lt; endl;
    return 1;
  }

  //Filestream ueber Dateinamen (erster Programmparameter) erzeugen
  ifstream fin(argv[1]);
  int i(0), tmp;

  //Solange Filestream Daten liefert (Dateiende nicht erreicht) einlesen 
  while(fin &gt;&gt; tmp) {
    //Ausgabe der eingelesenen Daten
    cout &lt;&lt; ++i &lt;&lt; &quot;. Zahl: &quot; &lt;&lt; tmp &lt;&lt; endl;
  }

  return 0;
}
</code></pre>
<p>Wäre super wenn jemand mir ein paar Hinweise oder Tips geben könnte. Vielen Dank.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/318208/textfile-einlesen-und-auswerten</link><generator>RSS for Node</generator><lastBuildDate>Mon, 27 Jul 2026 11:52:32 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/318208.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 04 Jul 2013 15:12:24 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Textfile einlesen und auswerten. on Thu, 04 Jul 2013 15:12:24 GMT]]></title><description><![CDATA[<p>Hallo zusammen ich habe mal eine Frage:</p>
<p>Und zwar hat jemand eine Idee, wie ich ein Textfile so einlesen kann, dass es in ein 2 dim Array umgewandelt werden kann?</p>
<p>Das Textfile schaut so aus:</p>
<p>5 2<br />
1 F<br />
3 F<br />
4 F<br />
12 G<br />
13 G<br />
14 G<br />
etc...<br />
(immer zwei Werte in einer Zeile)</p>
<p>Und zwar möchte ich hinterher ein Array haben das die Werte wie folgt gespeichert hat:</p>
<p>Array[0][0] --&gt; 5<br />
Array[0][1] --&gt; 2<br />
Array[1][0] --&gt; 1<br />
Array[1][1] --&gt; F<br />
Array[4][0] --&gt; 12<br />
Array[4][1] --&gt; G</p>
<p>Für das Einlesen habe ich folgendes Programmkonstrukt:</p>
<pre><code>int main(int argc, char** argv) {
  //Pruefen, ob wenigstens ein Programmparameter uebergeben wurde
  if(argc &lt; 2) {
    cout &lt;&lt; &quot;Bitte Dateinamen angeben!&quot; &lt;&lt; endl;
    return 1;
  }

  //Filestream ueber Dateinamen (erster Programmparameter) erzeugen
  ifstream fin(argv[1]);
  int i(0), tmp;

  //Solange Filestream Daten liefert (Dateiende nicht erreicht) einlesen 
  while(fin &gt;&gt; tmp) {
    //Ausgabe der eingelesenen Daten
    cout &lt;&lt; ++i &lt;&lt; &quot;. Zahl: &quot; &lt;&lt; tmp &lt;&lt; endl;
  }

  return 0;
}
</code></pre>
<p>Wäre super wenn jemand mir ein paar Hinweise oder Tips geben könnte. Vielen Dank.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2336558</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2336558</guid><dc:creator><![CDATA[Tyle]]></dc:creator><pubDate>Thu, 04 Jul 2013 15:12:24 GMT</pubDate></item><item><title><![CDATA[Reply to Textfile einlesen und auswerten. on Thu, 04 Jul 2013 15:25:01 GMT]]></title><description><![CDATA[<p>Tyle schrieb:</p>
<blockquote>
<p>Wäre super wenn jemand mir ein paar Hinweise oder Tips geben könnte. Vielen Dank.</p>
</blockquote>
<p>Ich würde die Zahlen nacheinander in ein Array lesen und danach die Zweidimensionalität &quot;simulieren&quot;.</p>
<p>In C++ liegen die Werte dann ja so im Speicher (<em>row-major order</em>):</p>
<pre><code>5 2 1 f 3 f 4 f 12 g 13 g 14 g
</code></pre>
<p>und dann &quot;einfach&quot; (hier ist Dein Gehirnschmalz gefragt) eine Funktion</p>
<pre><code class="language-cpp">template&lt;typename T&gt;
T&amp; get(const T* array, int x, int y);
</code></pre>
<p>Das kommt C++ schon sehr nahe (fehlt nur noch ein Container aus der Standardbibliothek - den Du wahrscheinlich immer noch nicht benutzen darfst.)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2336563</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2336563</guid><dc:creator><![CDATA[Furble Wurble]]></dc:creator><pubDate>Thu, 04 Jul 2013 15:25:01 GMT</pubDate></item><item><title><![CDATA[Reply to Textfile einlesen und auswerten. on Thu, 04 Jul 2013 15:27:28 GMT]]></title><description><![CDATA[<p>Wie kann ich es erreichen das der die Zahl beispielsweise &quot;12&quot; als 12 einließt und nicht als &quot;1&quot; und &quot;2&quot;.</p>
<p>Das hat bei mir nämlich nicht geklappt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2336564</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2336564</guid><dc:creator><![CDATA[Tyle]]></dc:creator><pubDate>Thu, 04 Jul 2013 15:27:28 GMT</pubDate></item><item><title><![CDATA[Reply to Textfile einlesen und auswerten. on Thu, 04 Jul 2013 15:28:21 GMT]]></title><description><![CDATA[<p>Hi,<br />
ich würde einfach std::vector + std::pair. Und seit wann ist F,G eine Zahl? :p</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2336565</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2336565</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Thu, 04 Jul 2013 15:28:21 GMT</pubDate></item><item><title><![CDATA[Reply to Textfile einlesen und auswerten. on Thu, 04 Jul 2013 15:36:02 GMT]]></title><description><![CDATA[<p>Tyle schrieb:</p>
<blockquote>
<p>Wie kann ich es erreichen das der die Zahl beispielsweise &quot;12&quot; als 12 einließt und nicht als &quot;1&quot; und &quot;2&quot;.</p>
<p>Das hat bei mir nämlich nicht geklappt.</p>
</blockquote>
<p>Gar nicht.<br />
Files werden zeichenweise eingelesen.<br />
Aber wenn du den operator&gt;&gt; auf einen int anwendest, wird automatisch konvertiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2336568</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2336568</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Thu, 04 Jul 2013 15:36:02 GMT</pubDate></item><item><title><![CDATA[Reply to Textfile einlesen und auswerten. on Thu, 04 Jul 2013 15:36:17 GMT]]></title><description><![CDATA[<p>Wenn es möglich ist würde ich gerne auf den Vektor verzichten. Dürfen wir wie immer nicht verwenden... leider.</p>
<p>Dazu ist ja das Problem das es erstmal ein Array ist wo die int und char Werte gemischt sind. Wenn ich ein Char Array benutze speichert er ja nur die ASCII Werte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2336569</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2336569</guid><dc:creator><![CDATA[Tyle]]></dc:creator><pubDate>Thu, 04 Jul 2013 15:36:17 GMT</pubDate></item><item><title><![CDATA[Reply to Textfile einlesen und auswerten. on Thu, 04 Jul 2013 15:42:14 GMT]]></title><description><![CDATA[<p>Tyle schrieb:</p>
<blockquote>
<p>Dazu ist ja das Problem das es erstmal ein Array ist wo die int und char Werte gemischt sind. Wenn ich ein Char Array benutze speichert er ja nur die ASCII Werte.</p>
</blockquote>
<p>Also sind es keine Zahlen, sondern strings?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2336575</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2336575</guid><dc:creator><![CDATA[Furble Wurble]]></dc:creator><pubDate>Thu, 04 Jul 2013 15:42:14 GMT</pubDate></item><item><title><![CDATA[Reply to Textfile einlesen und auswerten. on Thu, 04 Jul 2013 15:46:59 GMT]]></title><description><![CDATA[<p>Tyle schrieb:</p>
<blockquote>
<p>Wenn es möglich ist würde ich gerne auf den Vektor verzichten. Dürfen wir wie immer nicht verwenden... leider.</p>
</blockquote>
<p>Hmm, egal ich poste es trotzdem.</p>
<pre><code>template&lt;typename T&gt;
class vector_2d
{
	private:
		vector&lt;T&gt; data;
		size_t sy;

	public:
		vector_2d( size_t y ) : sy(y) {}

		const T&amp; operator()( size_t x, size_t y ) const
		{
			return data[x*xy + y];
		}
		T&amp; operator()( size_t x, size_t y )
		{
			return data[x*sy + y];
		}

		void push_back( const T&amp; val ) { data.push_back(val); }

		size_t size_x() const { return data.size()/sy; }
		size_t size_y() const { return sy; }
};

int main()
{
	ifstream file( &quot;test.txt&quot; );
	vector_2d&lt;string&gt; data( 2 );
	for(string s1,s2; file&gt;&gt;s1&gt;&gt;s2; data.push_back(s1),data.push_back(s2));

	for(unsigned x=0; x!=data.size_x(); ++x)
	{
		for(unsigned y=0; y!=data.size_y(); ++y)
			cout &lt;&lt; data(x,y) &lt;&lt; ' ';
		cout &lt;&lt; '\n';
	}
}
</code></pre>
<p>Tyle schrieb:</p>
<blockquote>
<p>Dazu ist ja das Problem das es erstmal ein Array ist wo die int und char Werte gemischt sind.</p>
</blockquote>
<p>Das Problem hast du gut erkannt. Da ein Array eine aufeinanderfolgende Ansammlung von Elementen desselben Types ist, hast du ein Problem.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2336577</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2336577</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Thu, 04 Jul 2013 15:46:59 GMT</pubDate></item><item><title><![CDATA[Reply to Textfile einlesen und auswerten. on Thu, 04 Jul 2013 16:05:07 GMT]]></title><description><![CDATA[<p>Ich kann doch ein char Array abfragen in dem ja die ASCII Werte abgespeichert sind.</p>
<p>Bei G und F kommt ja dann 70 und 71 bei rum. Nur wie kann ich die zusammenhängende Zahlen z.B. 12 auswerten?</p>
<p>Die stehen ja nicht zusammen in einem Array Feld.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2336581</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2336581</guid><dc:creator><![CDATA[Tyle]]></dc:creator><pubDate>Thu, 04 Jul 2013 16:05:07 GMT</pubDate></item><item><title><![CDATA[Reply to Textfile einlesen und auswerten. on Thu, 04 Jul 2013 16:07:58 GMT]]></title><description><![CDATA[<p>Tyle schrieb:</p>
<blockquote>
<p>Nur wie kann ich die zusammenhängende Zahlen z.B. 12 auswerten?</p>
</blockquote>
<p>Einfach ins Dezimalsystem umrechnen: 2*10^0 + 1*10^1</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2336582</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2336582</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Thu, 04 Jul 2013 16:07:58 GMT</pubDate></item><item><title><![CDATA[Reply to Textfile einlesen und auswerten. on Thu, 04 Jul 2013 16:23:16 GMT]]></title><description><![CDATA[<p>Also müsste ich mit zwei Array arbeiten.</p>
<p>Zu aller erst müsste ich die Zeichenkette auswerten. D.h. das Array immer bis zur nächsten 70 oder 71 durchlaufen und gucken ob davor ein oder zwei Werte gespeichert sind. Die dann Umrechnen und in ein neues int Array schreiben.</p>
<p>Wenn 70 oder 71 gelesen wird wird dann in ein bool Array true oder false eingetragen.</p>
<p>Dann könnte ich beide Arrays mit einem Wert durchlaufen z.B. i und mir für die Zahl den Zugehörigen Wert (true oder false) ausgeben lassen.</p>
<p>Ist alles ne bissel umständlich, frage mich nicht ob das nicht ein wenig einfacher geht. Mischen kann ich ja die Typen in einem Array nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2336584</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2336584</guid><dc:creator><![CDATA[Tyle]]></dc:creator><pubDate>Thu, 04 Jul 2013 16:23:16 GMT</pubDate></item><item><title><![CDATA[Reply to Textfile einlesen und auswerten. on Thu, 04 Jul 2013 16:29:14 GMT]]></title><description><![CDATA[<p>Hier, so darfst du es aber machen oder?</p>
<pre><code>int main()
{
	ifstream file( &quot;test.txt&quot; );

	int daten[100][2] = {};
	unsigned datensaetze = 0;

	for(unsigned x=0; x!=100 &amp;&amp; file; ++x)
	{
		int     zahl;
		file &gt;&gt; zahl;

		int     zahl2;
		file &gt;&gt; zahl2;

		char c;
		if( file )
		{
			c = zahl2;
		}
		else
		{
			file.clear();
			file &gt;&gt; c;
		}

		if( file )
		{
			daten[x][0] = zahl;
			daten[x][1] = c;
			++datensaetze;
		}
	}

	// Testausgaben
    for(unsigned x=0; x!=datensaetze; ++x)
    {
        for(unsigned y=0; y!=2; ++y)
            cout &lt;&lt; daten[x][y] &lt;&lt; ' ';
        cout &lt;&lt; '\n';
    }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2336586</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2336586</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Thu, 04 Jul 2013 16:29:14 GMT</pubDate></item><item><title><![CDATA[Reply to Textfile einlesen und auswerten. on Thu, 04 Jul 2013 17:08:54 GMT]]></title><description><![CDATA[<p>Ja das kann ich so anwenden, ist erlaubt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2336594</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2336594</guid><dc:creator><![CDATA[Tyle]]></dc:creator><pubDate>Thu, 04 Jul 2013 17:08:54 GMT</pubDate></item><item><title><![CDATA[Reply to Textfile einlesen und auswerten. on Thu, 04 Jul 2013 17:11:54 GMT]]></title><description><![CDATA[<p>Tyle schrieb:</p>
<blockquote>
<p>Ist alles ne bissel umständlich, frage mich nicht ob das nicht ein wenig einfacher geht. Mischen kann ich ja die Typen in einem Array nicht.</p>
</blockquote>
<p>Sorry, vielleicht bin ich ja ein wenig begriffstutzig, aber:<br />
was hast Du jetzt (logisch) in der Datei stehen? Zahlen? Oder Zeichenketten? Oder beides? Oder was anderes?</p>
<p>Und was willst Du am Ende haben? Zahlen? Oder Zeichenketten? Oder beides? Oder was anderes?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2336595</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2336595</guid><dc:creator><![CDATA[Furble Wurble]]></dc:creator><pubDate>Thu, 04 Jul 2013 17:11:54 GMT</pubDate></item><item><title><![CDATA[Reply to Textfile einlesen und auswerten. on Thu, 04 Jul 2013 18:14:29 GMT]]></title><description><![CDATA[<p>Ich lese die Text-Datei als int array ein. Nach der Methode von OUT.</p>
<p>Ich möchte auch int Werte haben. Dann gucke ich welchen Wert die 2. Dimension hat, ob es 70 oder 71 ist.</p>
<p>So kann ich das Array durchlaufen.</p>
<p>Es geht im Endeffekt um eine Platz Resvervierung. Die 1. Dimension gibt die Personennummer wieder, die 2. ob die Person am Fenster oder am Gang sitzen möchte.</p>
<p>Ich überprüfe damit ein 3.Dim Array, ob der Platz noch frei ist. Wenn ja wird er reserviert, wenn nicht wird geguckt ob es noch einen anderen Fensterplatz/ Gangplatz gibt.</p>
<p>Das Textfile konnte ich nun einlesen und in ein 2. Dim Array verpacken. Soweit habe ich das was ich brauche.</p>
<p>Nun muss ich den Rest der Logik schreiben, d.h. das 3. Dim-Array durchlaufen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2336609</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2336609</guid><dc:creator><![CDATA[Tyle]]></dc:creator><pubDate>Thu, 04 Jul 2013 18:14:29 GMT</pubDate></item><item><title><![CDATA[Reply to Textfile einlesen und auswerten. on Fri, 05 Jul 2013 06:46:18 GMT]]></title><description><![CDATA[<p>Huh?<br />
Aus der Beschreibung werde ich nicht schlau.</p>
<p>Erzähl doch mal, was Du machen willst, nicht wie.</p>
<p>Ich verstehe Du hast eine Datei mit Reservierungen.<br />
Jede <em>Reservierung</em> besteht aus einer Zeile mit einer <em>ID</em> in der ersten Spalte und einem Code für Gang('G'), oder Fenster('F') in der zweiten.<br />
Was ist dann die Bedeutung der Zeile</p>
<pre><code>5 2
</code></pre>
<p>aus Deinem Beispiel?</p>
<p>Du bist jedenfalls ganz schön auf dem Holzweg, so viel ist sicher.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2336676</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2336676</guid><dc:creator><![CDATA[Furble Wurble]]></dc:creator><pubDate>Fri, 05 Jul 2013 06:46:18 GMT</pubDate></item><item><title><![CDATA[Reply to Textfile einlesen und auswerten. on Fri, 05 Jul 2013 07:27:11 GMT]]></title><description><![CDATA[<p>Tyle schrieb:</p>
<blockquote>
<p>Wenn es möglich ist würde ich gerne auf den Vektor verzichten. Dürfen wir wie immer nicht verwenden... leider.</p>
</blockquote>
<p>Von dem, der Dir das verbietet, lernst Du alles Mögliche, aber kein C++ <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_down"
      title=":-1:"
      alt="👎"
    /> siehe <a href="http://de.wikipedia.org/wiki/Another_Brick_in_the_Wall" rel="nofollow">dort</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2336681</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2336681</guid><dc:creator><![CDATA[Kenner der Lehrenden]]></dc:creator><pubDate>Fri, 05 Jul 2013 07:27:11 GMT</pubDate></item></channel></rss>