Lors de la gestion des entrées utilisateur sous forme de chaînes, il est courant de vouloir les écrire dans un fichier pour les stocker. Cependant, tenter de le faire en utilisant la méthode write() d'un ofstream peut conduire à des résultats inattendus.
Il est important de comprendre que std::string est une structure de données complexe qui stocke à la fois la valeur de la chaîne et sa longueur en interne. Lorsque vous utilisez write() avec std::string, il écrit en fait cette représentation interne dans le fichier. Il est peu probable que ces données binaires s'affichent correctement sous forme de texte lorsque le fichier est ouvert.
Pour écrire du texte brut dans des fichiers, l'approche recommandée consiste à utiliser un objet ofstream , qui agit comme un std::cout pour écrire dans des fichiers. L'exemple de code suivant illustre cette approche :
#include <fstream> #include <iostream> int main() { std::string studentName; std::cout << "Enter your name: "; std::cin >> studentName; std::ofstream outFile("output.txt"); outFile << studentName; outFile.close(); return 0; }
Si vous devez écrire la représentation binaire réelle de la chaîne, plutôt que sa valeur en texte brut, vous pouvez utiliser string::c_str() pour récupérer un pointeur vers les données brutes et leur longueur pour write(). L'extrait suivant le démontre :
write.write(studentPassword.c_str(), studentPassword.size());
En utilisant ces techniques, vous pouvez écrire efficacement à la fois des chaînes de texte en clair et des données binaires dans des fichiers, en fonction de vos besoins spécifiques.
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!