<?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[Datei einlesen]]></title><description><![CDATA[<p>Hi,</p>
<p>ich habe eine DAtei von folgenden Format:</p>
<pre><code>0,Bodo,100,2000
1,Dominik,150,2005
3,Marton,44,44
#
0,1,Lanze,100,50
0,2,Schwert,50,550
3,2,Stab,50,666
</code></pre>
<p>Eine Datei einlesen würde ich so z.B:</p>
<pre><code class="language-cpp">string line;
		string token;
		ifstream textfile;                // Quelldatei (Lesen)          
		textfile.open(&quot;Daten.txt&quot;, ios::in); // zum Lesen öffnen
		if (!textfile) {                  // Datei kann nicht geoeffnet werden
			cerr &lt;&lt; &quot;Daten.txt&quot; &lt;&lt; &quot; kann nicht geoeffnet werden!\n&quot;;
		}else{
			while(getline(textfile,line)){		
				vector&lt;string&gt; inhalt;
				istringstream iss(line);
				while(getline(iss,token,','))
				{
					inhalt.push_back(token);
				}
				iss.clear();

				//konvertierung zu int mal weggelassen
entryliste.push_back(Entry(inhalt[1],inhalt[0],inhalt[2],inhalt[3]));

				}		
			}   
		textfile.close();
</code></pre>
<p>Mein Frage ist nun, wie kann ich in der Datei nun bis zu Raute lesen, und dann muss ja die Routine anders aussehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/244269/datei-einlesen</link><generator>RSS for Node</generator><lastBuildDate>Sat, 19 Sep 2026 11:15:30 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/244269.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 27 Jun 2009 19:02:32 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Datei einlesen on Sat, 27 Jun 2009 19:02:32 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich habe eine DAtei von folgenden Format:</p>
<pre><code>0,Bodo,100,2000
1,Dominik,150,2005
3,Marton,44,44
#
0,1,Lanze,100,50
0,2,Schwert,50,550
3,2,Stab,50,666
</code></pre>
<p>Eine Datei einlesen würde ich so z.B:</p>
<pre><code class="language-cpp">string line;
		string token;
		ifstream textfile;                // Quelldatei (Lesen)          
		textfile.open(&quot;Daten.txt&quot;, ios::in); // zum Lesen öffnen
		if (!textfile) {                  // Datei kann nicht geoeffnet werden
			cerr &lt;&lt; &quot;Daten.txt&quot; &lt;&lt; &quot; kann nicht geoeffnet werden!\n&quot;;
		}else{
			while(getline(textfile,line)){		
				vector&lt;string&gt; inhalt;
				istringstream iss(line);
				while(getline(iss,token,','))
				{
					inhalt.push_back(token);
				}
				iss.clear();

				//konvertierung zu int mal weggelassen
entryliste.push_back(Entry(inhalt[1],inhalt[0],inhalt[2],inhalt[3]));

				}		
			}   
		textfile.close();
</code></pre>
<p>Mein Frage ist nun, wie kann ich in der Datei nun bis zu Raute lesen, und dann muss ja die Routine anders aussehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1733803</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1733803</guid><dc:creator><![CDATA[Dolphon]]></dc:creator><pubDate>Sat, 27 Jun 2009 19:02:32 GMT</pubDate></item><item><title><![CDATA[Reply to Datei einlesen on Sat, 27 Jun 2009 21:02:54 GMT]]></title><description><![CDATA[<p>Hm vllt. jedes zeichen einzeln einlesen und bei jedem zeichen überprüfen, ob das zeichen '#' ist und wenn das zutrifft, beenden?<br />
(Nur so ne idee)<br />
gruß,<br />
Finn</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1733829</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1733829</guid><dc:creator><![CDATA[Finn]]></dc:creator><pubDate>Sat, 27 Jun 2009 21:02:54 GMT</pubDate></item><item><title><![CDATA[Reply to Datei einlesen on Sat, 27 Jun 2009 21:05:28 GMT]]></title><description><![CDATA[<p>while schleife abbrechen.<br />
falls die raute irgendwo stehen darf:</p>
<pre><code class="language-cpp">if(line.find('#')) break;
</code></pre>
<p>Wenn es immer Zeilenanfang ist:</p>
<pre><code class="language-cpp">if(line.count() &amp;&amp; line.[0] == '#') break;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1733830</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1733830</guid><dc:creator><![CDATA[blubberfisch]]></dc:creator><pubDate>Sat, 27 Jun 2009 21:05:28 GMT</pubDate></item><item><title><![CDATA[Reply to Datei einlesen on Sat, 27 Jun 2009 23:14:17 GMT]]></title><description><![CDATA[<p>blubberfisch schrieb:</p>
<blockquote>
<pre><code class="language-cpp">if(line.count() &amp;&amp; line.[0] == '#') break;
</code></pre>
</blockquote>
<p>Du meinst wohl <code>line.size()</code> oder <code>line.length()</code> . <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Ich schreibe bei mir jedoch meist noch <code>!= 0</code> hin, wenn Zahlen verglichen werden. Hier wäre aber auch <code>empty()</code> eine Möglichkeit...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1733870</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1733870</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sat, 27 Jun 2009 23:14:17 GMT</pubDate></item><item><title><![CDATA[Reply to Datei einlesen on Sun, 28 Jun 2009 13:00:22 GMT]]></title><description><![CDATA[<p>Danke für die Tips.<br />
Ich bekomme nun allerdigns eine Fehlermeldung.</p>
<p>&quot;Vector Subskript out of Range&quot;</p>
<pre><code class="language-cpp">void Manager::read_from_textfile(string dateiname)
{

		string line;
		string token;
		int maximumWeight;
		int currentWeight;
		int gewicht;
		int special;
		int typ_item;
		unsigned int playernumber;

		ifstream textfile;                // Quelldatei (Lesen)          
		textfile.open(dateiname.c_str(), ios::in); // zum Lesen öffnen
		if (!textfile) {                  // Datei kann nicht geoeffnet werden
			cerr &lt;&lt; dateiname.c_str() &lt;&lt; &quot; kann nicht geoeffnet werden!\n&quot;;
		}else{
			while(getline(textfile,line))
			{		
				istringstream iss(line);
				vector&lt;string&gt; inhalt;

				if(line.find('#')) break;	//Bruchkriterium

				//if(line.size() &amp;&amp; line.[0] == '#') break;

				while(getline(iss,token,','))
				{
					inhalt.push_back(token);
				}
				iss.clear();

				stringstream sstr(inhalt[0]);
				sstr &gt;&gt; playernumber;
				stringstream sstr2(inhalt[2]);
				sstr2 &gt;&gt; currentWeight;
				stringstream sstr3(inhalt[3]);
				sstr3 &gt;&gt; maximumWeight;
				//Player_nummer,Name,CurrentWeight,MaximumWeight
				allPlayers.push_back(Player(inhalt[1],maximumWeight));
				//allPlayers[playernumber].set_currentWeight(currentWeight);

			}	

			while(getline(textfile,line)){		
				vector&lt;string&gt; inhalt;
				istringstream iss(line);

				while(getline(iss,token,','))
				{
					inhalt.push_back(token);
				}
				iss.clear();
				//Typ_Item,Playernumer,Name,Gewicht,Feed oder Attack
				stringstream sstr(inhalt[1]);
				sstr &gt;&gt; typ_item;
				stringstream sstr2(inhalt[1]);
				sstr2 &gt;&gt; playernumber;
				stringstream sstr3(inhalt[3]);
				sstr3 &gt;&gt; gewicht;
				stringstream sstr4(inhalt[4]);
				sstr4 &gt;&gt; special;
				allPlayers[playernumber].read_from_file_item(typ_item,inhalt[2],gewicht,special);

				}	
			}   
		textfile.close();
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1734043</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1734043</guid><dc:creator><![CDATA[Dolphon]]></dc:creator><pubDate>Sun, 28 Jun 2009 13:00:22 GMT</pubDate></item><item><title><![CDATA[Reply to Datei einlesen on Sun, 28 Jun 2009 13:25:26 GMT]]></title><description><![CDATA[<p>Du greifst auf ein Vektor Element zu, welches gar nicht existiert. Z.B so:</p>
<pre><code class="language-cpp">std::vector&lt;int&gt; v;

std::cout &lt;&lt; v[5]; // generiert den Fehler
</code></pre>
<p>Ich sehe, dass du ein paar Solche zugriffe hast. Also Debugg das mal, dann siehst du, wo das genau ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1734059</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1734059</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sun, 28 Jun 2009 13:25:26 GMT</pubDate></item><item><title><![CDATA[Reply to Datei einlesen on Sun, 28 Jun 2009 13:52:52 GMT]]></title><description><![CDATA[<p>Also das Problem scheint wohl diese Zeile zu sein, für das Abbruchkriterium</p>
<pre><code class="language-cpp">if(line.find('#')) break;    //Bruchkriterium
</code></pre>
<p>Wenn das Kriterium erfüllt ist. Bleibt er wohl in der Zeile wo die # steht.<br />
ER müsste dann aber eine Zeile weiterrücen, damit es passt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1734078</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1734078</guid><dc:creator><![CDATA[Dolphon]]></dc:creator><pubDate>Sun, 28 Jun 2009 13:52:52 GMT</pubDate></item><item><title><![CDATA[Reply to Datei einlesen on Sun, 28 Jun 2009 14:33:20 GMT]]></title><description><![CDATA[<blockquote>
<p>ER müsste dann aber eine Zeile weiterrücen, damit es passt.</p>
</blockquote>
<p>Er?</p>
<p>Die Abfrage ist Sinnfrei, denn wenn die Kondition erfüllt wurde, wird direkt wieder aus der &quot;Schleife&quot; gesprungen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1734100</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1734100</guid><dc:creator><![CDATA[Kóyaánasqatsi]]></dc:creator><pubDate>Sun, 28 Jun 2009 14:33:20 GMT</pubDate></item></channel></rss>