Bonjour,
Je sais que ça paraît une question de débutant mais je n'avais jamais utilisé la STL directement pour manipuler des fichiers.
Après avoir passé un long moment sur la doc, je pensais utiliser cette technique :
Ensuite je suis tombé sur la faq C++ de dvp où on conseille cette approche :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 std::ifstream fs( _termsFilePath->c_str() ) ; std::string line; if(!fs ) { //erreur } while( !fs.eof() ) { if(!std::getline(fs, line) ) { //erreur } //faire qqch avec line }
Je me demande si avec cette dernière, il n'y a pas un risque de confondre le cas ou la lecture s'arrête normalement à cause d'un eof() ou à cause d'une erreur?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 #include <string> #include <fstream> #include <iostream> int main() { // le constructeur de ifstream permet d'ouvrir un fichier en lecture std::ifstream fichier( "fichier.txt" ); if ( fichier ) // ce test échoue si le fichier n'est pas ouvert { std::string ligne; // variable contenant chaque ligne lue // cette boucle s'arrête dès qu'une erreur de lecture survient while ( std::getline( fichier, ligne ) ) { // afficher la ligne à l'écran std::cout << ligne << std::endl; } } }
Partager