Maison >développement back-end >C++ >Comment puis-je écrire correctement des chaînes dans des fichiers en C ?

Comment puis-je écrire correctement des chaînes dans des fichiers en C ?

DDD
DDDoriginal
2024-11-26 15:27:10687parcourir

How Can I Correctly Write Strings to Files in C  ?

Écrire des chaînes dans des fichiers en C

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.

std::string et écriture de fichiers

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.

Utilisation d'un ofstream pour les fichiers texte

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;
}

Écriture de données binaires dans des fichiers

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn