• Wieder einmal haben uns unsere Apfeltalker tolle Fotos zur Abstimmung eingesandt. Welches ist Euer Favorit? Stimmt mit ab! Hier geht es zur Abstimmung --> Klick
  • Es ist bereits Apfeltalk-Tradition und wir möchten sie auch in diesem Jahr fortsetzen: Unser Apfeltalk-Weihnachtslogo-Wettbewerb hat begonnen! Gestaltet für uns das Weihnachtsbanner, das im Monat Dezember bis zum Weihnachtsfest unsere Webseite schmücken soll. Lasst Eurer Kreativität freien Lauf! Hier geht es zum Wettbewerb --> Klick

EOF - End of File

Thomas

Grahams Jubiläumsapfel
Registriert
12.08.09
Beiträge
106
Hallo zusammen :)

Ich habe ein Problem mit Xcode und komme einfach nicht weiter. Ich mache zur Zeit eine Ausbildung zum Informationstechnischen Assistenten in der wir die Anfänge von C++ lernen. Ich bin leider der einzige Mac-User hier in der Klasse und kann somit auf keine Unterstützung von meinem Lehrer in Fragen zum Compiler hoffen.

Das Programm soll eine "gehalt.dat" auslesen und die Daten in der Datei formatiert ausgeben. Die unten beschriebende Funktion soll die Zeilen zählen die in der "gehalt.dat" vorkommen:

Code:
int intGetLines(string strDataName)
{
	int intLines=0;
	string ch;
	
	ifstream fin("gehalt.dat", ios::in);
	
	do
	{
		while(getline(fin,ch))
		{
			intZeilen = intLines +1;
			
		}
	}while(!fin.eof());
	fin.close();
	
	return intLines;
}

Das Compilieren klappt ohne Probleme, jedoch scheint er das EOF nicht zu finden. Er hängt sich immer in einer Endlos-Schleife auf. Der absolut identische Code funktioniert bei meinen Klassenkameraden.

Meine Frage ist also ob es eine Ersatzfunktion für eof() gibt oder ob ich dieses Zeichen oder was genau das ist irgendwie anfügen kann.


Danke für eure Hilfe!
 
Meine Frage ist also ob es eine Ersatzfunktion für eof() gibt oder ob ich dieses Zeichen oder was genau das ist irgendwie anfügen kann.
Nein, es gibt dafür keine Ersatzfunktion, weil das nicht notwendig ist. Die Funktion funktioniert nämlich, wie sie soll. Ich würde mal prüfen, ob die Datei "gehalt.dat" erfolgreich geöffnet wird (fin.fail()).

Übrigens wird Deine Funktion so immer 0 zurück geben!

MacApple
 
Zuletzt bearbeitet:
Lass Dir mal zeilenweise den Dateiinhalt ausgeben.