Bonjour à tous !
Je veux lire un fichier texte de la manière la plus élégamment cépluplussienne, tout en évitant des memcpy superflus.
En gros, j'aimerais une boucle qui à chaque tour, renseigne une string avec la ligne suivante lue dans le fichier.
Tout ce que j'ai trouvé c'est :Et en plus, je suis obligé de connaître un majorant de la longueur des lignes !
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 void work_with_string ( const string & s ) ; void read_file ( string filename ) { ifstream file( filename ) ; if (!file.good()) return ; while (!file.eof()) { char sline [100] ; file.getline( sline,sizeof( sline )) ; string line = sline ; // <------ memcpy !!!! work_with_string( line ) ; } }
Et si je fais file >> line ; j'obtiens des chaînes découpées au niveau des espaces (et non des EOL).
D'où ma question : il y a-t-il un moyen propre, et néanmoins sans memcpy, de lire les lignes d'un fichier texte dans des string ?
Merci d'avance !
Partager