Maison > développement back-end > C++ > Pourquoi l'écriture d'un std::string dans un fichier produit-elle des boîtes au lieu de texte ?

Pourquoi l'écriture d'un std::string dans un fichier produit-elle des boîtes au lieu de texte ?

Linda Hamilton
Libérer: 2024-11-26 21:00:17
original
1089 Les gens l'ont consulté

Why Does Writing a std::string to a File Produce Boxes Instead of Text?

Comment écrire une chaîne std::string dans un fichier sans voir les cases

Question :

Lors de l'écriture d'une variable std::string dans un fichier à l'aide de la méthode write(), le fichier résultant affiche des cases au lieu de la chaîne attendue. Est-ce que std::string est adapté à ce scénario, ou une approche alternative doit-elle être envisagée ?

Réponse :

std::string convient en effet à l'écriture dans des fichiers, mais la méthode write() est destinée aux données binaires. Pour écrire une chaîne au format texte, pensez à utiliser un objet ofstream. Voici un exemple :

#include <fstream>
#include <string>
#include <iostream>

int main() {
    std::string name;
    std::cout << "Enter your name: ";
    std::cin >> name;
    std::ofstream out("name.txt");
    out << name;  // Writes the string to the file in text format
    out.close();
    return 0;
}
Copier après la connexion

Pour l'écriture binaire, utilisez la méthode c_str() pour obtenir les données de caractères sous-jacentes et écrivez-les dans le fichier :

#include <fstream>
#include <string>
#include <iostream>

int main() {
    std::string password;
    std::cout << "Enter your password: ";
    std::cin >> password;
    std::ofstream out("password.bin", std::ios::binary);
    out.write(password.c_str(), password.size());  // Writes the password in binary format
    out.close();
    return 0;
}
Copier après la connexion

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal