Datei einlesen



  • Hi!

    Ich versuche eine Datei einzulesen. Diese hat allerdings ein '\n' am Ende der letzten Zeile in der etwas drin steht, somit ist die letzte Zeile leer. Immer wenn ich die Datei auslese bis zum Ende und am Ende mit der Methode fail prüfe geht das Programm in diesen if-Zweig:

    std::string temp("");
    while(!file.eof()) // true, solange das Ende nicht im Eingabestrom gefunden
    {
    	std::string reader("");
    	std::getline(file, reader); // Datei zeilenweise auslesen
    	temp += reader+'\n';
    }
    	file.seekg(0, std::ios_base::beg);
    	if(file.fail()) Error();
    

    Error ist eine Funktion die eine Ausnahme wirft. Wenn das '\n' am Dateiende nicht vorhanden ist ist alles ok.
    Datei könnte so aussehen:
    "BlaBlad\n"
    bzw.:
    "BlaBla
    "

    Wieso wird das filbit gesetzt wenn dieses '\n' am Ende der "letzten" Zeile gesetzt ist und somit in der wirklichen letzten Zeile nichts drin steht?

    EDIT: Wie könnte man das evtl. vermeiden, das das failbit gesetzt wird? Bzw. wie finde ich heraus das nichts mehr in der Datei steht?

    Code-Hacker


Anmelden zum Antworten