Hallo,
auf der Suche nach einem Schnipsel zum Auslesen der letzten Zeile einer File, bin ich auf folgenden Code gestoßen.
https://stackoverflow.com/questions/11876290/c-fastest-way-to-read-only-last-line-of-text-file
Leider ist die Ausgabe aber immer leer. Habe schon probiert mit und ohne Zeilenumbruch nach der letzten Zeile aber keine Besserung. File und Filename hab ich auch schon überprüft. Ich Kompiliere zu Zeit auf Linux, der Code-Urheber nutzt scheinbar MSVC, das wäre noch der einzige Unterschied der mir aufgefallen ist. Anhand der vielen guten Bewertungen des Codes kann man ja davon ausgehen, dass es bei manchen funktioniert...
Hat jemand eine Idee warum keine Ausgabe kommt?
Gruß
auf der Suche nach einem Schnipsel zum Auslesen der letzten Zeile einer File, bin ich auf folgenden Code gestoßen.
https://stackoverflow.com/questions/11876290/c-fastest-way-to-read-only-last-line-of-text-file
Code:
std::string filename = "test.csv";
std::ifstream fin;
fin.open(filename);
if(fin.is_open())
{
fin.seekg(-1,std::ios_base::end); // go to one spot before the EOF
bool keepLooping = true;
while(keepLooping)
{
char ch;
fin.get(ch); // Get current byte's data
if((int)fin.tellg() <= 1)
{ // If the data was at or before the 0th byte
fin.seekg(0); // The first line is the last line
keepLooping = false; // So stop there
}
else if(ch == '\n')
{ // If the data was a newline
keepLooping = false; // Stop at the current position.
}
else
{ // If the data was neither a newline nor at the 0 byte
fin.seekg(-2,std::ios_base::cur); // Move to the front of that data, then to the front of the data before it
}
}
std::string lastLine;
getline(fin,lastLine); // Read the current line
std::cout << "Result: " << lastLine << '\n'; // Display it
fin.close();
}
Leider ist die Ausgabe aber immer leer. Habe schon probiert mit und ohne Zeilenumbruch nach der letzten Zeile aber keine Besserung. File und Filename hab ich auch schon überprüft. Ich Kompiliere zu Zeit auf Linux, der Code-Urheber nutzt scheinbar MSVC, das wäre noch der einzige Unterschied der mir aufgefallen ist. Anhand der vielen guten Bewertungen des Codes kann man ja davon ausgehen, dass es bei manchen funktioniert...
Hat jemand eine Idee warum keine Ausgabe kommt?
Gruß
Zuletzt bearbeitet: