<?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[Fehler C1004 - Unerwartetes Dateiende gefunden]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich bin absolute C++ - Anfängerin.<br />
Ich möchte Zeichen aus einer Datei einlesen und eine Frequenzstatistik erstellen.<br />
Wenn ich kompilieren will, kommt immer die Fehlermeldung<br />
&quot;1&gt;d:\uni potsdam\3. semester\c++\huffman\frequenz.cpp(67) : fatal error C1004: Unerwartetes Dateiende gefunden&quot;.<br />
Kann mir jemand sagen wo der Fehler liegt?<br />
Außerdem wäre ich jedem dankbar, der mich auf andere Fehler aufmerksam macht, auch wenn es nicht zur Lösung des Problems führt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Hier mein Code:</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;string&gt;
using namespace std;

class Frequenz 
{
	int freq[256];			// Zeichenzähler
	int total_char_count;		// Gesamtanzahl der gelesenen Zeichen

	// Standardkonstruktor
	Frequenz() 
	{
		init();
	}

	// Konstruktor
	Frequenz(string s) 
	{
		init();
		freqcheck(s);
	}

	// Destruktor
	~Frequenz() 
	{
	}

	// Frequenzstatistik erstellen
	void freqcheck(string s)
	{
		ifstream file;
		file.open(&quot;test.txt&quot;, ios::in);
		char ctmp = file.get();
		while(ctmp != eof()) 
		{
			freq[(int)ctmp]++;
			total_char_count++;	
			ctmp = file.get();
			file.close();
		}
	}

	// Initialisiere Datenstrukturen
	void init() 
	{
		// Initialisierung: alle Zähler auf 0 setzen
		for (int i = 0; i &lt; sizeof(freq)/sizeof(int); ++i) 
		{
			freq[i] = 0;
		}
		// Zähler für die Gesamtzeichenanzahl (ohne '\0' und '\n')
		total_char_count = 0;
	}

	int main()
	{
		return 0;
	}

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/209583/fehler-c1004-unerwartetes-dateiende-gefunden</link><generator>RSS for Node</generator><lastBuildDate>Mon, 12 Oct 2026 16:46:37 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/209583.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 01 Apr 2008 12:01:59 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Fehler C1004 - Unerwartetes Dateiende gefunden on Tue, 01 Apr 2008 12:01:59 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich bin absolute C++ - Anfängerin.<br />
Ich möchte Zeichen aus einer Datei einlesen und eine Frequenzstatistik erstellen.<br />
Wenn ich kompilieren will, kommt immer die Fehlermeldung<br />
&quot;1&gt;d:\uni potsdam\3. semester\c++\huffman\frequenz.cpp(67) : fatal error C1004: Unerwartetes Dateiende gefunden&quot;.<br />
Kann mir jemand sagen wo der Fehler liegt?<br />
Außerdem wäre ich jedem dankbar, der mich auf andere Fehler aufmerksam macht, auch wenn es nicht zur Lösung des Problems führt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Hier mein Code:</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;string&gt;
using namespace std;

class Frequenz 
{
	int freq[256];			// Zeichenzähler
	int total_char_count;		// Gesamtanzahl der gelesenen Zeichen

	// Standardkonstruktor
	Frequenz() 
	{
		init();
	}

	// Konstruktor
	Frequenz(string s) 
	{
		init();
		freqcheck(s);
	}

	// Destruktor
	~Frequenz() 
	{
	}

	// Frequenzstatistik erstellen
	void freqcheck(string s)
	{
		ifstream file;
		file.open(&quot;test.txt&quot;, ios::in);
		char ctmp = file.get();
		while(ctmp != eof()) 
		{
			freq[(int)ctmp]++;
			total_char_count++;	
			ctmp = file.get();
			file.close();
		}
	}

	// Initialisiere Datenstrukturen
	void init() 
	{
		// Initialisierung: alle Zähler auf 0 setzen
		for (int i = 0; i &lt; sizeof(freq)/sizeof(int); ++i) 
		{
			freq[i] = 0;
		}
		// Zähler für die Gesamtzeichenanzahl (ohne '\0' und '\n')
		total_char_count = 0;
	}

	int main()
	{
		return 0;
	}

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1484398</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1484398</guid><dc:creator><![CDATA[CoLi]]></dc:creator><pubDate>Tue, 01 Apr 2008 12:01:59 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler C1004 - Unerwartetes Dateiende gefunden on Tue, 01 Apr 2008 12:05:33 GMT]]></title><description><![CDATA[<p>Es fehlt ein Semikolon am Ende der Klasse <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1484402</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1484402</guid><dc:creator><![CDATA[Eichboson]]></dc:creator><pubDate>Tue, 01 Apr 2008 12:05:33 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler C1004 - Unerwartetes Dateiende gefunden on Tue, 01 Apr 2008 12:32:23 GMT]]></title><description><![CDATA[<p>Wow, das ist peinlich, das war zu einfach, da hätt ich auch als Anfänger drauf kommen müssen.<br />
Dankeschön!</p>
<p>Nun ergeben sich natürlich gleich die nächsten Probleme.<br />
Er beschwert sich darüber, dass in Zeile 31 ein Semikolon vor dem Punkt fehlen würde<br />
(1&gt;d:\uni potsdam\3. semester\c++\huffman\frequenz.cpp(35) : error C2143: Syntaxfehler: Es fehlt ';' vor '.')<br />
Ich hab aber keine Ahnung, wo genau das jetzt hin soll.</p>
<p>In Zeile 37 bekomme ich die Warnung<br />
&quot;1&gt;d:\uni potsdam\3. semester\c++\huffman\frequenz.cpp(37) : warning C4805: '!=': unsichere Kombination von Typ 'char' mit Typ 'bool' in einer Operation&quot;<br />
Kann ich das Problem irgendwie umgehen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1484445</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1484445</guid><dc:creator><![CDATA[CoLi]]></dc:creator><pubDate>Tue, 01 Apr 2008 12:32:23 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler C1004 - Unerwartetes Dateiende gefunden on Tue, 01 Apr 2008 12:44:24 GMT]]></title><description><![CDATA[<p>ISO/IEC 14882:1998 schrieb:</p>
<blockquote>
<p>3.6.1 Main function [basic.start.main]</p>
<p>A program shall contain a global function called main, which is the designated start of the program.</p>
</blockquote>
<p>Also schmeiß erstmal die <code>main( )</code> aus Deiner Klasse raus.</p>
<p><code>std::ifstream::get( )</code> liefert einen Integer. Somit sollte <code>ctmp</code> auch ein <code>int</code> sein. Welches <code>eof</code> meinst Du denn? Ich glaube, du willst <code>ctmp</code> mit <code>ifstream::traits_type::eof( )</code> vergleichen.</p>
<p>cheers, Swordfish</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1484457</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1484457</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Tue, 01 Apr 2008 12:44:24 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler C1004 - Unerwartetes Dateiende gefunden on Tue, 01 Apr 2008 12:58:00 GMT]]></title><description><![CDATA[<p>main() is weg <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>ifstream::traits_type::eof( ) sagt mir nichts. Ich werd mal in dei Referenzen schauen und versuchen etwas zu verstehen^^<br />
Mein Plan war:</p>
<pre><code>void freqcheck(string s)
	{
                  // DATEI ÖFFNEN
		fstream file.open(s, fstream::in);

                  // ERSTES ZEICHEN HOLEN UND IN ctmp SPEICHERN
		char ctmp = file.get();

                  // ERHÖHEN, SOLANGE DAS ENDE DER DATEI NICHT ERREICHT IST
		while(ctmp != file.eof()) 
		{
			freq[(int)ctmp]++;
			total_char_count++;	
			ctmp = file.get();
			file.close();
		}
	}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1484472</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1484472</guid><dc:creator><![CDATA[CoLi]]></dc:creator><pubDate>Tue, 01 Apr 2008 12:58:00 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler C1004 - Unerwartetes Dateiende gefunden on Tue, 01 Apr 2008 13:13:27 GMT]]></title><description><![CDATA[<p>Also mit EOF ist die Warnung weg, aber der Fehler mit dem Semikolon bleibt.</p>
<pre><code>void freqcheck(string s)
	{
		fstream file.open(s, fstream::in);
		char ctmp = file.get();
		while(ctmp != [b]EOF[/b]) 
		{
			freq[(int)ctmp]++;
			total_char_count++;	
			ctmp = file.get();
			file.close();
		}
	}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1484489</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1484489</guid><dc:creator><![CDATA[CoLi]]></dc:creator><pubDate>Tue, 01 Apr 2008 13:13:27 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler C1004 - Unerwartetes Dateiende gefunden on Tue, 01 Apr 2008 14:15:09 GMT]]></title><description><![CDATA[<p>Das hier</p>
<pre><code class="language-cpp">fstream file.open(s, fstream::in);
</code></pre>
<p>sollte eher so aussehen</p>
<pre><code class="language-cpp">ifstream file(s.c_str());
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1484539</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1484539</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Tue, 01 Apr 2008 14:15:09 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler C1004 - Unerwartetes Dateiende gefunden on Tue, 01 Apr 2008 15:36:01 GMT]]></title><description><![CDATA[<p>Ihr seid super!</p>
<p>Kann mir jetzt noch jemand sagen warum ich folgende Meldung bekomme?</p>
<p>LINK : fatal error LNK1561: Einstiegspunkt muss definiert werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1484598</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1484598</guid><dc:creator><![CDATA[CoLi]]></dc:creator><pubDate>Tue, 01 Apr 2008 15:36:01 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler C1004 - Unerwartetes Dateiende gefunden on Tue, 01 Apr 2008 15:42:31 GMT]]></title><description><![CDATA[<p>Klar : main war ja nicht &quot;falsch&quot;, sondern nur &quot;an der falschen Stelle&quot;.</p>
<p>Sprich: Nicht in die Klassendefinition, sondern als freie Funktion dahinter.<br />
Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1484602</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1484602</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Tue, 01 Apr 2008 15:42:31 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler C1004 - Unerwartetes Dateiende gefunden on Tue, 01 Apr 2008 15:44:17 GMT]]></title><description><![CDATA[<p>Weil Du die <code>main( )</code> nicht aus dem gesamten Programm rauskicken sollst, sondern nur aus der Klasse <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> global definieren.</p>
<p>cheers Swordfish</p>
<p>//edit: verdammte 34s zu laaaaangssam *fluch*</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1484603</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1484603</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Tue, 01 Apr 2008 15:44:17 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler C1004 - Unerwartetes Dateiende gefunden on Tue, 01 Apr 2008 17:01:28 GMT]]></title><description><![CDATA[<p>Ok, vielen Dank, dann bastel ich mal weiter <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> fast 2 Stunden später: ES KLAPPT <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1484606</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1484606</guid><dc:creator><![CDATA[CoLi]]></dc:creator><pubDate>Tue, 01 Apr 2008 17:01:28 GMT</pubDate></item></channel></rss>