Problem beim Auslesen aus Datei mit Zahlen und Strings
-
Hallo,
ich habe ein kleines Problem beim Auslesen einer Datei.
Und zwar genau dann, wenn ein String in der Datei auftaucht.test.txt sieht folgendermaßen aus:
---
datensatz: 1 4711 1.23 1010
datensatz: 2 0.334 34.12 344.3
---Mein Code ist folgender:
void main() { ifstream file; file.open( "test.txt" ); if ( !file ) return; float data; while( !file.eof() ) { file >> data; // Endlosschleife, sobald test.txt einen String enthält. } file.close(); }
Da die test.txt den String "datensatz:" enthält, funktioniert das Programm leider nicht.
Denn jedesmal wenn das Programm beim Ausführen des Befehles
file >> data;
auf einen String trifft, springt der Positionszeiger nicht auf die nächsten Daten, sondern bleibt (vermutlich) auf der Position des Strings und führt somit zu einer Endlosschleife.
Mir ist schon klar, dass das Programm einen String nicht so einfach in eine Float-Variable konvertieren kann, dennoch soll das Programm weiter mit dem Einlesen der Daten fortfahren...
-
getline(file,data)
packe alles in einen stringstream und zerlege ihn in strings und ints
-
int main und nicht void!! Gib auf jeden Fall was zurück, zb Fehlercode/Status 0 wenn korrekt, im Falle eines Fehlers was anderes
ifstream file( "test.txt" ); //.open() und .close() nicht explizit nötigwenn du schon weißt wie die Datei aufgebaut ist, dann gestalte doch auch das Einlesn so, dh wähle die Variablen so, daß es funktioniert
wo ist das Problem? lese strings doch einfach in einen Puffer
-
Wie wär's damit?
while(file >> text >> datum1 >> datum2 >> datum3 >> datum4) { // zusammenbauen }
MfG Jester
-
das wäre am einfachsten, wenn die datei wirklich NUR SO aufgebaut ist