Heim >Backend-Entwicklung >C++ >Warum erzeugt das Schreiben eines std::string in eine Datei Kästchen anstelle von 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!