Ich habe ein Problem beim Lesen der Datei, mit fstream auf Windows geöffnet.Lesen von Dateiinhalt mit ifstream geöffnet
Datei erfolgreich geöffnet und es hat keine Fehler, aber Zyklus mit getline bekommt keinen Inhalt.
Neben dieser Probe läuft perfekt und druckt gesamten Dateiinhalt
std::copy(std::istream_iterator<std::string>(file), std::istream_iterator<std::string>(),
std::ostream_iterator<std::string>(std::cerr, "\n"));
Unter Linux ist alles perfekt, gleiche Datei, denselben Code, liest getline in Zyklus alle.
Visual Studio 2013
Edit:
Ich vergaß zu erwähnen, dass ich diese kleine Codezeile vor Zyklus habe mit getline
std::cout << file.rdbuf();
Unter Linux diese Zeile druckt nur Dateiinhalt , unter Windows wird nicht nur gedruckt, sondern die Datei kann auch auf std::getline
So nach der while-Schleife, wenn Sie 'strings.size drucken()' Du wirst Null? – NathanOliver
@NathanOliver yep – tty6
Ist die Datei eine Textdatei? Ist das erste Zeichen 0x1A? In Windows gibt es spezielle Zeichen- oder Bytewerte, die auf das Ende der Datei hinweisen. Wenn Ihre Datei diese am Anfang enthält * und Sie die Datei nicht als Binärdatei * öffnen, gibt das Windows-Betriebssystem eine Dateiendebedingung zurück. –