1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| string getLastLine(string filename) {
#define _LL_BUFFSIZE_ 200
string lastLine = ""; // initialisation à vide du résultat
char buff[_LL_BUFFSIZE_]; // initialisation du tampon
ifstream is; // ouverture du flux - stream
is.open(filename.c_str()); // ouverture du fichier en argument de la fonction dans le flux
is.seekg (0, ios::end); // aller à la fin du fichier (EOF)
int length = is.tellg(); // trouver la taille du fichier
is.seekg(length-min(length,_LL_BUFFSIZE_),ios::beg); // déplacement du curseur à taille du tampon charactères de la fin du fichier
// lire les charactères jusqu'à la taille du buffer
buff[0]=0;
// ajouter tous les caractères, y compris si saut de ligne
while (is.getline(buff, _LL_BUFFSIZE_)) {
lastLine = buff;
}
is.close(); // fermeture du fichier et du flux
return lastLine; // retourner la dernière ligne du fichier
} |
Partager