Gestion des encodages de nouvelle ligne avec std::ifstream
Lorsque vous travaillez avec des fichiers texte, les nouvelles lignes codées de manière incohérente peuvent présenter des défis. Cet article aborde le problème de la gestion gracieuse des fins de ligne LF, CR et CRLF à l'aide de la classe std::ifstream.
std::istream& getline ( istream& is, string& str );
La fonction getline lit une ligne jusqu'à un caractère de nouvelle ligne. Cependant, il peut laisser des caractères CR ou CRLF résiduels en fin de ligne. Pour résoudre ce problème, l'article propose d'utiliser une fonction personnalisée appelée safeGetline :
std::istream& safeGetline(std::istream& is, std::string& t) { // ... }
La fonction safeGetline parcourt le flux d'entrée, vérifiant chaque caractère et détectant l'encodage de nouvelle ligne approprié. Il gère les trois caractères de nouvelle ligne courants : LF, CR et CRLF.
Pour tester la fonction safeGetline, l'article fournit un exemple de programme qui ouvre un fichier texte, lit ses lignes à l'aide de safeGetline et compte le nombre total. de lignes. Cela démontre la capacité de la fonction à gérer divers encodages de nouvelle ligne rencontrés dans les fichiers texte du monde réel.
En utilisant la fonction safeGetline, les programmeurs peuvent écrire du code qui prend en charge tous les formats d'encodage de nouvelle ligne courants, quelle que soit la plate-forme ou la source du fichier. fichiers texte.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!