I basierend mit dem >>
Stream Operator eine Textdatei zu lesen versuchen, aber dies scheint die Datei Wort für Wort zu lesen:Ende der Zeile erkennen, während sie von einer Text-Datei C Lese ++
void printFile(char filename[])
{
ifstream input;
input.open(filename);
char output[50];
if (input.is_open()) {
while (!input.eof()) {
input >> output;
cout << output << endl;
}
}
else cout << "File is not open!";
input.close();
cout << endl;
}
Der Das einzige Problem dabei ist, dass die Zeilenumbrüche nicht ausgedruckt werden.
Bitte beachten Sie, dass ich immer noch C++ lerne und das Ziel ist, dies ohne using string
s (also ohne getline
) zu erreichen. Gibt es einen Weg dies zu tun, oder ist es einfach unmöglich?
das Ziel nur nicht getline Ist? Sie könnten stattdessen nach Zeichen einlesen, was den Verlust von '\ n' verhindert. – odin
Lesen Sie die Datei mit getline(), damit Sie sich keine Gedanken über Zeilenumbrüche machen müssen. Und lesen Sie https://latedev.wordpress.com/2012/12/04/all-about-eof, um zu sehen, warum Sie eof() nicht loopen sollten. –
@NeilButterworth Ich glaube, du hast einen Teil meiner Frage verpasst –