ifstream, kapier ich net?!?!
-
Hi,
also das kapiert ja KEIN mensch! Wieso funzt dieser code net:
int main () { char buffer[256]; ifstream examplefile ("test.txt", ios::binary); if (!examplefile.is_open()) { cout << "Error opening file"; exit (1); } while (!examplefile.eof()) { examplefile.getline (buffer,100); cout << buffer << endl; } // Damit programm nicht direkt beendet. int i; cin >> i; return 0; }
die TXT sieht so aus:
This is a line.
This is another line.und das ist die ausgabe in der Console:
T
Was zum geier ist da falsch???
-
Vielleicht ist die Textdatei Unicode. Schau sie dir doch mal in einem Hexeditor an.
-
Kann net sein, die hab ich als ASCII abgespeichert
-
lass mal das ios::binary weg, vieleicht gehts dann
-
Danke funzt nun
mal ne andere frage: ich lasse die while ja so durchlaufen:
while (!examplefile.eof())
gibbet ne möglichkeit die schleife so lange durchlaufen zu lassen bis ein bestimmter string auftaucht? z.B. FILE_BLOCK_END ?
-
string zeile; while (!datei.e_of()) { getline (datei, zeile); if (zeile == "EOF") break; }
das getline ist aus <iostream>, ob du erst die datei, und dann den string oder umgekehrt angeben musst, fällt mir nie ein
statt "EOF" kannst natürlich jede andere buchstabenkombination machen. das brak bewirkt, dass die schleife vorzeitig verlassen wird