Bonne pratique lecture de fichier texte
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 :
Code:
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 en plus, je suis obligé de connaître un majorant de la longueur des lignes !
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 !