<?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[Probleme mit fgets(...)]]></title><description><![CDATA[<pre><code class="language-cpp">bool Liste::LoadFiles(void)
{
	HANDLE fHandle; 
	WIN32_FIND_DATA wfd; 

	fHandle=FindFirstFile(&quot;C:\\MeinPfad\\*&quot;,&amp;wfd); 

	do 
	{ 

	   if (!( (wfd.cFileName[0]=='.') &amp;&amp; ( (wfd.cFileName[1]=='.' &amp;&amp; wfd.cFileName[2]==0) || wfd.cFileName[1]==0 ) )) 
	   { 
	      if (strstr(wfd.cFileName,&quot;.txt&quot;)) 
		  { 
			  FILE *Datei;
			  Datei = fopen(wfd.cFileName,&quot;r&quot;);
			  char Puffer[100];
			  char cID[100];
			  fgets(Puffer,100,Datei);
			  strcpy(cID,Puffer);
			  /*if(Puffer[1] != '0')
			  {
				  if(Kopf == 0)
				  {
					  Kopf = new Pic;
					  Ende = Kopf;
	    			  Kopf-&gt;SetID(StrToInt(cID));
				  }
				  else
				  {
					  Pic *p = Ende;
				      p-&gt;SetNachfolger(new Pic);
                      Ende = p-&gt;GetNachfolger();
                      Ende-&gt;SetVorgaenger(p);
				      Ende-&gt;SetID(StrToInt(cID));
				  }
			  }*/
			  fclose(Datei);
		  }
	   } 
	}
	while (FindNextFile(fHandle,&amp;wfd)); 
	FindClose(fHandle);
	return true;
}
</code></pre>
<p>Was ich habe:<br />
Einen Ordner voller Textdateien,die in der ersten Zeile [IrgendeineZahl] zu stehen haben,wie zb [22] oder [34].</p>
<p>Was ich möchte:<br />
Zu jeder Textdatei in diesem Ordner ein Objekt erstellen, welche jeder eine andere ID haben.<br />
Die ID's werden aus den Textdateien rausgelesen.</p>
<p>Das Problem:<br />
Immer wenn ich das Programm starte,kommt die Fehlermeldung:</p>
<blockquote>
<p>Debug Assertion Failed!</p>
<p>Program: Pfad vom Programm<br />
File: fgets.c<br />
Line: 60</p>
<p>Expression str != NULL</p>
<p>Abbrechen | Wiederholen | Ignorieren</p>
</blockquote>
<p>Ich hab in dem Quelltext mit /* */ rausgefiltert,wo der Fehler sicher nicht liegt.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/163367/probleme-mit-fgets</link><generator>RSS for Node</generator><lastBuildDate>Sun, 13 Sep 2026 02:00:47 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/163367.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 28 Oct 2006 21:55:52 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Probleme mit fgets(...) on Sat, 28 Oct 2006 21:55:52 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">bool Liste::LoadFiles(void)
{
	HANDLE fHandle; 
	WIN32_FIND_DATA wfd; 

	fHandle=FindFirstFile(&quot;C:\\MeinPfad\\*&quot;,&amp;wfd); 

	do 
	{ 

	   if (!( (wfd.cFileName[0]=='.') &amp;&amp; ( (wfd.cFileName[1]=='.' &amp;&amp; wfd.cFileName[2]==0) || wfd.cFileName[1]==0 ) )) 
	   { 
	      if (strstr(wfd.cFileName,&quot;.txt&quot;)) 
		  { 
			  FILE *Datei;
			  Datei = fopen(wfd.cFileName,&quot;r&quot;);
			  char Puffer[100];
			  char cID[100];
			  fgets(Puffer,100,Datei);
			  strcpy(cID,Puffer);
			  /*if(Puffer[1] != '0')
			  {
				  if(Kopf == 0)
				  {
					  Kopf = new Pic;
					  Ende = Kopf;
	    			  Kopf-&gt;SetID(StrToInt(cID));
				  }
				  else
				  {
					  Pic *p = Ende;
				      p-&gt;SetNachfolger(new Pic);
                      Ende = p-&gt;GetNachfolger();
                      Ende-&gt;SetVorgaenger(p);
				      Ende-&gt;SetID(StrToInt(cID));
				  }
			  }*/
			  fclose(Datei);
		  }
	   } 
	}
	while (FindNextFile(fHandle,&amp;wfd)); 
	FindClose(fHandle);
	return true;
}
</code></pre>
<p>Was ich habe:<br />
Einen Ordner voller Textdateien,die in der ersten Zeile [IrgendeineZahl] zu stehen haben,wie zb [22] oder [34].</p>
<p>Was ich möchte:<br />
Zu jeder Textdatei in diesem Ordner ein Objekt erstellen, welche jeder eine andere ID haben.<br />
Die ID's werden aus den Textdateien rausgelesen.</p>
<p>Das Problem:<br />
Immer wenn ich das Programm starte,kommt die Fehlermeldung:</p>
<blockquote>
<p>Debug Assertion Failed!</p>
<p>Program: Pfad vom Programm<br />
File: fgets.c<br />
Line: 60</p>
<p>Expression str != NULL</p>
<p>Abbrechen | Wiederholen | Ignorieren</p>
</blockquote>
<p>Ich hab in dem Quelltext mit /* */ rausgefiltert,wo der Fehler sicher nicht liegt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1163437</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1163437</guid><dc:creator><![CDATA[Tobi3000]]></dc:creator><pubDate>Sat, 28 Oct 2006 21:55:52 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit fgets(...) on Sat, 28 Oct 2006 22:10:45 GMT]]></title><description><![CDATA[<p>Das bedeutet, dass an die Funktion fgets ein FILE-Pointer mit dem Wert NULL übergeben wurde. In Deinem Fall ist wahrscheinlich das fopen schiefgegangen. Du solltest nach dem fopen den Returnwert (hier 'Datei') auf NULL abfragen.</p>
<p>Empfehlung std::ifstream benutzen</p>
<pre><code class="language-cpp">std::ifstream datei( dateiname );
  int id;
  if( datei &gt;&gt; id )
      // 'id' korrekt gelesen
</code></pre>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1163444</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1163444</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Sat, 28 Oct 2006 22:10:45 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit fgets(...) on Sat, 28 Oct 2006 22:54:38 GMT]]></title><description><![CDATA[<p>Das ist sehr eigenartig.</p>
<p>Der Fehler muss wirklich bei fopen passiert sein.</p>
<p>Aber ich verstehe nicht,was da falsch ist.</p>
<p>Ist in wfd.cFileName nur der Dateiname gespeichert oder ist da der ganze Pfad?</p>
<p>EDIT:Ich habs getestet.<br />
Der Fehler lag wirklich daran,dass ich dachte wfd.cFileName würde den ganzen Pfad beinhalten und darum hat fopen nicht gefunzt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1163465</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1163465</guid><dc:creator><![CDATA[Tobi3000]]></dc:creator><pubDate>Sat, 28 Oct 2006 22:54:38 GMT</pubDate></item></channel></rss>