<?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[Programm stürzt bei leerer datei bzw leerer Zeile ab]]></title><description><![CDATA[<p>habe ein kleines problem mein programm soll eine textdatei verarbeiten in datensätze mit strtok getrennt werden und verarbeitet werden sollen</p>
<p>mein problem leere dateien oder leere zeilen bringen das programm zum absturz<br />
glaube das der fehler in folgendem code steckt</p>
<p>glaube es liegt an Datei.getline(sLine, 256);</p>
<pre><code class="language-cpp">if ( !Datei )
	{
		cout &lt;&lt; &quot;Kann Datei ( &quot; &lt;&lt; dat_ein &lt;&lt; &quot; ) nicht öffnen&quot; &lt;&lt; endl;
	}

	while(!Datei.eof())
	{
		Datei.getline(sLine, 256);
	//	cout &lt;&lt; &quot;Zeile :&quot; &lt;&lt; sLine &lt;&lt; endl;

        if(sLine == &quot;&quot;) continue;
		if(sLine[0] == '#') continue;

		// Zeile auseinandernehmen.
		token = strtok(sLine, Trenner);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/118055/programm-stürzt-bei-leerer-datei-bzw-leerer-zeile-ab</link><generator>RSS for Node</generator><lastBuildDate>Fri, 21 Aug 2026 07:16:54 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/118055.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 14 Aug 2005 15:05:23 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Programm stürzt bei leerer datei bzw leerer Zeile ab on Sun, 14 Aug 2005 15:05:23 GMT]]></title><description><![CDATA[<p>habe ein kleines problem mein programm soll eine textdatei verarbeiten in datensätze mit strtok getrennt werden und verarbeitet werden sollen</p>
<p>mein problem leere dateien oder leere zeilen bringen das programm zum absturz<br />
glaube das der fehler in folgendem code steckt</p>
<p>glaube es liegt an Datei.getline(sLine, 256);</p>
<pre><code class="language-cpp">if ( !Datei )
	{
		cout &lt;&lt; &quot;Kann Datei ( &quot; &lt;&lt; dat_ein &lt;&lt; &quot; ) nicht öffnen&quot; &lt;&lt; endl;
	}

	while(!Datei.eof())
	{
		Datei.getline(sLine, 256);
	//	cout &lt;&lt; &quot;Zeile :&quot; &lt;&lt; sLine &lt;&lt; endl;

        if(sLine == &quot;&quot;) continue;
		if(sLine[0] == '#') continue;

		// Zeile auseinandernehmen.
		token = strtok(sLine, Trenner);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/852009</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/852009</guid><dc:creator><![CDATA[Skippy]]></dc:creator><pubDate>Sun, 14 Aug 2005 15:05:23 GMT</pubDate></item><item><title><![CDATA[Reply to Programm stürzt bei leerer datei bzw leerer Zeile ab on Sun, 14 Aug 2005 17:16:11 GMT]]></title><description><![CDATA[<p>Beachte, dass eof erst true zurückliefert, wenn EOF bereits gelesen wurde.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/852079</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/852079</guid><dc:creator><![CDATA[rüdiger]]></dc:creator><pubDate>Sun, 14 Aug 2005 17:16:11 GMT</pubDate></item><item><title><![CDATA[Reply to Programm stürzt bei leerer datei bzw leerer Zeile ab on Sun, 14 Aug 2005 17:23:17 GMT]]></title><description><![CDATA[<p>yep aber dateiende wird ja korrekt erkannt er stürzt ja nur bei leeren zeilen bzw wenn die datei ganz leer ist ab.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/852087</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/852087</guid><dc:creator><![CDATA[Skippy]]></dc:creator><pubDate>Sun, 14 Aug 2005 17:23:17 GMT</pubDate></item><item><title><![CDATA[Reply to Programm stürzt bei leerer datei bzw leerer Zeile ab on Sun, 14 Aug 2005 17:28:03 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>wenn die datei leer ist dann führt vermutlich sline[0] zu problemen.</p>
<pre><code class="language-cpp">while(true){
     file.getline(sline,255);
     if(file.eof())
        break;
     if(sline.empty()) continue;
    //usw
}

//oder

while(std::getline(file,sline)){
    //tu was
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/852089</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/852089</guid><dc:creator><![CDATA[prolog]]></dc:creator><pubDate>Sun, 14 Aug 2005 17:28:03 GMT</pubDate></item><item><title><![CDATA[Reply to Programm stürzt bei leerer datei bzw leerer Zeile ab on Sun, 14 Aug 2005 17:51:36 GMT]]></title><description><![CDATA[<p>sLine ist bei mir ein char</p>
<p>ich prufe da so(der code war leider noch von heut vormittag<br />
count tut hier nichts zursache das brauche ich nur um mich in der datei dynamisch zu bewegen da immer nur 10 zeilen auf den bildschirm passen</p>
<p>while(count-- &amp;&amp; !Datei.eof())<br />
{<br />
Datei.getline(sLine, 256);</p>
<p>if(!sLine)//funktioniert nicht<br />
{<br />
count++;<br />
continue;<br />
}</p>
<p>if(sLine[0] == '#')<br />
{<br />
count++;<br />
continue;<br />
}</p>
]]></description><link>https://www.c-plusplus.net/forum/post/852103</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/852103</guid><dc:creator><![CDATA[Skippy]]></dc:creator><pubDate>Sun, 14 Aug 2005 17:51:36 GMT</pubDate></item><item><title><![CDATA[Reply to Programm stürzt bei leerer datei bzw leerer Zeile ab on Sun, 14 Aug 2005 20:09:31 GMT]]></title><description><![CDATA[<p>sLine ist vermutlich ein char[256].</p>
<p>Dann ist sLine niemals NULL, d.h. die Prüfung</p>
<pre><code class="language-cpp">if( !sLine)
</code></pre>
<p>macht keinen Sinn.<br />
Du willst wissen, ob sLine leer ist.<br />
Ein C-String ist leer, wenn kein Zeichen enthalten ist, d.h. er nur einen \0 enthält.<br />
Prüfen kannst Du das mit,</p>
<pre><code class="language-cpp">if( sLine[0] == '\0')
</code></pre>
<p>oder mit</p>
<pre><code class="language-cpp">if( strlen( sLine) == 0)
</code></pre>
<p>Mir std::string ist das alles etwas einfacher...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/852204</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/852204</guid><dc:creator><![CDATA[niemand]]></dc:creator><pubDate>Sun, 14 Aug 2005 20:09:31 GMT</pubDate></item><item><title><![CDATA[Reply to Programm stürzt bei leerer datei bzw leerer Zeile ab on Mon, 15 Aug 2005 12:25:05 GMT]]></title><description><![CDATA[<blockquote>
<p>Ein C-String ist leer, wenn kein Zeichen enthalten ist, d.h. er nur einen \0 enthält.<br />
Prüfen kannst Du das mit,<br />
C/C++ Code:<br />
if( sLine[0] == '\0')<br />
C/C++ Code:<br />
if( sLine[0] == '\0')<br />
C/C++ Code:<br />
if( sLine[0] == '\0')</p>
<p>oder mit<br />
C/C++ Code:<br />
if( strlen( sLine) == 0)<br />
C/C++ Code:<br />
if( strlen( sLine) == 0)<br />
C/C++ Code:<br />
if( strlen( sLine) == 0)</p>
</blockquote>
<p>Ich bin mir nicht 100% sicher aber ich denke, dass funktioniert nicht.<br />
Wenn du sLine nicht initialisierst und dein File leer ist kann in deiner Variablen irgendwas stehen. getline schreibt in dem Fall einfach nichts in das Array auch nicht \0.<br />
In einer Leerzeile sollte irgenetwas wie \10 \13 (oder umgekehrt ich kann mir das nie merken) drinne stehen.</p>
<p>Du solltest auch ein merkwürdiges verhalten haben, wenn du mitten im File eine leere Zeile hast.</p>
<p>schöne grüsse<br />
Tobi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/852516</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/852516</guid><dc:creator><![CDATA[tobi_kn]]></dc:creator><pubDate>Mon, 15 Aug 2005 12:25:05 GMT</pubDate></item><item><title><![CDATA[Reply to Programm stürzt bei leerer datei bzw leerer Zeile ab on Mon, 15 Aug 2005 12:47:49 GMT]]></title><description><![CDATA[<p>@tobi_kn</p>
<p>schau dir doch mal den titel des threats bitte nochmal an, dort steht nämlich das mein programm das von dir beschriebene verhalten hatte nämlich das bei einer leeren zeile das programm abstürtzte. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>EDIT: übrigens sLine wird zu beginn der ganzen funktion initialisiert<br />
hatte das hier nicht mitgepostet da danach noch ein block kommt in dem ich pfad und dateiname zusammensetzen muss.<br />
und erst danach kommt dann die while schleife</p>
<p>jedenfalls funktioniert das jetzt</p>
<p>das spielchen mit dem count nicht berücksichtigen das dient nur dazu damit ich immer eine bestimmte anzahl an zeilen bekomme und die zeilen die ignoriert werden sollen werden dann ausgeklammert</p>
<pre><code class="language-cpp">.
.
.
	while(count-- &amp;&amp; !Datei.eof())
	{
		Datei.getline(sLine, 256);
		//cout &lt;&lt; &quot;Zeile :&quot; &lt;&lt; sLine &lt;&lt; endl;//für debugzwecke

        if( strlen( sLine) == 0 || sLine[0] == '#')
        {
        count++;
        continue;
        }

		// Zeile auseinandernehmen.
		token = strtok(sLine, Trenner);

body +=&quot;&lt;a name='reply_2256'&gt;&lt;/a&gt;&quot;;
body +=&quot;&lt;table class='PhorumListTable' width='100%' cellspacing='0' cellpadding='2' border='0'&gt;&quot;;
body +=&quot;&lt;tr&gt;&quot;;
body +=&quot;    &lt;td  bgcolor='#31a2c6'&gt;&lt;FONT class='PhorumTableHeader' color='#FFFFFF'&gt;&amp;nbsp;&quot;;

body += token;//Titel des Posts

.
.
.
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/852531</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/852531</guid><dc:creator><![CDATA[Skippy]]></dc:creator><pubDate>Mon, 15 Aug 2005 12:47:49 GMT</pubDate></item></channel></rss>