Dans l'appel à la fonction getline, indique le séparateur de fin de ligne comme étant le symbole fin de fichier (end_of_line).
De ton écriture :
> getline( file, texte ); cela devient :
> getline( file, texte, char_taits::eof() );
Ca marche parce que tu travailles avec un fichier texte.
Dans l'implémentation Microsoft, char_taits::eof() vaut tout simplement -1.
// Read the file into memory
Input.read((char*)m_Data,FileSize);
// End
Input.close();
return true;
}
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Le site de mon mariage
BunoCS
Messages postés15475Date d'inscriptionlundi 11 juillet 2005StatutModérateurDernière intervention23 avril 2024103 27 sept. 2006 à 15:11
Oups...
J'ai oublié de dire que, dans mon exemple, m_Data est un tableau d'unsigned char.
Mais je pense que tu l'avais compris...
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Le site de mon mariage
BunoCS
Messages postés15475Date d'inscriptionlundi 11 juillet 2005StatutModérateurDernière intervention23 avril 2024103 28 sept. 2006 à 18:02
En fait, je ne sais pas trop quelle manière est la mieux en terme de performance:
- soit calculer la taille du fichier, allouer un buffer en conséquence et tout lire dedans (2 parcours de fichier)
- soit lire un par par les caractères du fichier jusqu'au caractère de fin (beaucoup d'accès au fichier)
- soit allouer un buffer de taille fixe BUFFER_SIZE, de lire BUFFER_SIZE caractères et de boucler si la taille du fichier est supérieure à BUFFER_SIZE
Si quelqu'un a une opinion là-dessus...
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Le site de mon mariage
Vous n’avez pas trouvé la réponse que vous recherchez ?