ifstream: gcount() liefert nach ">>" Operation 0 zurück :(
-
Ich habe, wie der Titel schon sagt ein problem mit ifstream.
Ich habe eine Instanz "file" von ifstream. ( Datei wurde erfolgreich geöffnet )
Nun habe ich noch einen dynamisch allozierten Puffer buf. ( mittels new alloziert)
Der Puffer ist vom typ char*.
Nach der Operation
/* Lese je ein byte */ file>>buf[i];
gibt gcount 0 zurück.
if (file.gcount() == 0) { cerr<<"Zero :( "<<endl; }
gcount gibt ja die anzahl der bytes der letzten Input operation zurück.
Nun ja: file>>buf "liest" ja aus file und "schreibt" in buf.Mittels gcount wollte ich testen ob eof erreicht wurde.
( Mir wurde das testen mittels file.eof() abgeraten. )Aber nun liefert gcount dauenrd 0 raus. Eigentlich sollte es 1 zurückgeben, tut es aber nicht.
Ich freue mich auf baldige Antworten.
MfG, problem
-
problem schrieb:
Ich habe, wie der Titel schon sagt ein problem mit ifstream.
Ich habe eine Instanz "file" von ifstream. ( Datei wurde erfolgreich geöffnet )
Nun habe ich noch einen dynamisch allozierten Puffer buf. ( mittels new alloziert)
Der Puffer ist vom typ char*.
Nach der Operation
/* Lese je ein byte */ file>>buf[i];
gibt gcount 0 zurück.
if (file.gcount() == 0) { cerr<<"Zero :( "<<endl; }
gcount gibt ja die anzahl der bytes der letzten Input operation zurück.
Nun ja: file>>buf "liest" ja aus file und "schreibt" in buf.Mittels gcount wollte ich testen ob eof erreicht wurde.
( Mir wurde das testen mittels file.eof() abgeraten. )Aber nun liefert gcount dauenrd 0 raus. Eigentlich sollte es 1 zurückgeben, tut es aber nicht.
Ich freue mich auf baldige Antworten.
MfG, problem
EDIT: Hat sich erledigt! nach read() gab gcount das richtige zurück, bloß nach >> net.