Zeichen aus Datei lesen (manchmal nur eins manchmal auch zwei) ?!?!?!
-
"rb"
-
Ja das leuchtet mir auch ein... danke!
-
o_O Wieder ein Problem gelöst
-
auf die funktion 'check_eof' kannste doch verzichten, oder?
-
Also so wie ich das mitbekommen hab gibt mir die feof-funktion immer erst dann eine "1" raus wenn ich vorher einen Lesezugriff gemacht habe und schon am Ende der Datei war.. ich möchte mit der check_eof-Funktion aber wissen ob ich das letzte Zeichen schon gelesen hab weil sonst liest mir z.B. die fgetc-funktion nen FF ein... aber kann auch am Compiler liegen weiß ich nicht genau
-
du kannst ganz einfach einfach 'bevor' du fgetc aufrufst, mit feof testen, ob noch zeichen da sind, dann liest du auch nicht über das fileende hinaus...
-
Hmmm.... also ich kenn das halt nur so, dass wenn ich das letzte zeichen ausgelesen hab kommt noch nicht EOF sondern ich bekomm das mit der feof-Funktion immer erst dann, wenn ich nachdem ich das letzte Zeichen ausgelesen hab dann nochmal fgetc (o.Ä.) mache, also quasi wenn ich versuche am Ende der Datei einen Lesezugriff zu machen...
wenn ich das letzte Zeichen auslese ist EOF bei mir immer noch nicht gesetzt.
das hat mich auch gewundert aber ich bekomm das immer nur so....
-
eine ganze datei ausgeben kann man z.b. (fp ist ein FILE*) so:
while (!feof(fp)) putchar (fgetc(fp));
oder so:
int c; while ((c = fgetc(fp)) != EOF) putchar(c);;
also normalerweise braucht man keine extra funktion...
-
pale dog schrieb:
eine ganze datei ausgeben kann man z.b. (fp ist ein FILE*) so:
while (!feof(fp)) putchar (fgetc(fp));
oder so:
int c; while ((c = fgetc(fp)) != EOF) putchar(c);;
also normalerweise braucht man keine extra funktion...
bessert die zweite Methode, da man bei der ersten Methode auch EOF ausgibt (feof ist nur true, wenn EOF einmal gelesen wurde, _nicht_ wenn das nächste Zeichen EOF ist!)
-
rüdiger schrieb:
...da man bei der ersten Methode auch EOF ausgibt (feof ist nur true, wenn EOF einmal gelesen wurde, _nicht_ wenn das nächste Zeichen EOF ist!)
*schluck*
du hast recht, das ist ja echt doof...