Probleme beim Einlesen einer Text-Datei
-
while (getline(file, line))
nein !
so:
while (!file.eof()) // liesst die gesamte datei ein { if(file.eof()){break;}; // verhindert die letzte doppelte zeile iStr << string1 << string2 << string3 << endl; };
//edit schreibfehler (das übliche halt
)
-
enno-tyrant schrieb:
while (getline(file, line))
nein !
Warum nicht?
Caipi
-
Caipi schrieb:
enno-tyrant schrieb:
while (getline(file, line))
nein !
Warum nicht?
Caipi
weil es nur eine zeile einliest
-
enno-tyrant schrieb:
Caipi schrieb:
enno-tyrant schrieb:
while (getline(file, line))
nein !
Warum nicht?
Caipi
weil es nur eine zeile einliest
Nö. Vergl.
#include <iostream> #include <string> #include <fstream> using namespace std; int main() { ifstream in("test.txt"); if(in.is_open()) { string str; while(getline(in, str)) cout << str << endl; } return 0; }
(Zumindest bei mir, liest es die ganze Datei ein)
Caipi
-
gut...gebe mich geschlagen
-
Hallo,
die Version von Blue Tiger funktioniert 1a.Aber die hier scheint nicht zu gehen, warum ?
string t,s,v,n; int p; istringstream iss(t); ifstream fin("Test.txt"); while(!fin.eof()) { if(!file.eof()) break; getline(fin,t); iss>>n>>v>>p>>s; cout>>n>>v>>p>>s; } /* Test.txt Name Vorname Zahl Ort Name Vorname Zahl Ort . . . */
Müsste doch theoretisch funktionieren oder ?
Danke.
-
lightning schrieb:
if(!file.eof()) break;
wohl eher:
if(file.eof()) break;
-
Das stimmt allerdings, aber damit ist der Fehler nicht beseitigt.
Ich bekomme diese Ausgabe:
-858993460
Und zwar für jede Zeile in der Textdatei !
Was könnte noch falsch sein ?
Danke im Voraus.
-
Ein paar Fragen
Was ist file (meinst du fin?). Das ist aber an der Stelle sinnlos.
Wo füllst du iss mit t ? Da oben ist das zu zeitig, immerhin ist t noch nicht belegt.
Was soll das mit dem cout (einlesen ?)
Also warum nicht:string t,s,v,n; int p; stringstream iss; ifstream fin("Test.txt"); while(getline(fin,t)) { iss.str(t); iss >> n >> v >> p >> s; cout << n << v << p << s; }
-
Hallo,
ja die Fehler "cout>>" und "file" habe ich nur hier gemacht, nicht im Quellcode.
Ich habe den Fehler auch gefunden.
Ich dachte wenn in t der string steht, dann wird er dem iss dynamisch zugewiesen.
Ich habe die Erstellung von iss in der schleife nach der getline Anweisung gemacht.Jetzt geht alles !
Trotzdem Danke.