Heim > Backend-Entwicklung > C++ > Warum erzeugt das Schreiben eines std::string in eine Datei Kästchen anstelle von Text?

Warum erzeugt das Schreiben eines std::string in eine Datei Kästchen anstelle von Text?

Linda Hamilton
Freigeben: 2024-11-26 21:00:17
Original
1102 Leute haben es durchsucht

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

So schreiben Sie einen std::string in eine Datei, ohne Kästchen zu sehen

Frage:

Wenn Sie eine std::string-Variable mit der Methode write() in eine Datei schreiben, zeigt die resultierende Datei Kästchen anstelle der erwarteten Zeichenfolge an. Ist std::string für dieses Szenario geeignet oder sollte ein alternativer Ansatz in Betracht gezogen werden?

Antwort:

std::string eignet sich tatsächlich zum Schreiben in Dateien. aber die Methode write() ist für Binärdaten gedacht. Um eine Zeichenfolge im Textformat zu schreiben, sollten Sie die Verwendung eines Ofstream-Objekts in Betracht ziehen. Hier ist ein Beispiel:

#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;
}
Nach dem Login kopieren

Für binäres Schreiben verwenden Sie die Methode c_str(), um die zugrunde liegenden Zeichendaten abzurufen und in die Datei zu schreiben:

#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;
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWarum erzeugt das Schreiben eines std::string in eine Datei Kästchen anstelle von Text?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage