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
Linda HamiltonOriginal
2024-11-26 21:00:171026Durchsuche

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

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

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!

Stellungnahme:
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