Bei der Verarbeitung von Benutzereingaben in Form von Strings möchte man diese häufig zur Speicherung in eine Datei schreiben. Der Versuch, dies mit der write()-Methode eines Ofstreams zu tun, kann jedoch zu unerwarteten Ergebnissen führen.
Es ist wichtig zu verstehen, dass std::string dies ist eine komplexe Datenstruktur, die sowohl den Wert als auch die Länge der Zeichenfolge intern speichert. Wenn write() mit std::string verwendet wird, wird diese interne Darstellung tatsächlich in die Datei geschrieben. Es ist unwahrscheinlich, dass diese Binärdaten beim Öffnen der Datei korrekt als Text angezeigt werden.
Um Klartext in Dateien zu schreiben, empfiehlt sich die Verwendung eines Ofstream-Objekts , das sich wie ein std::cout zum Schreiben in Dateien verhält. Das folgende Codebeispiel veranschaulicht diesen Ansatz:
#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; }
Wenn Sie die tatsächliche binäre Darstellung der Zeichenfolge anstelle ihres Klartextwerts schreiben müssen, können Sie diese verwenden string::c_str(), um einen Zeiger auf die Rohdaten und deren Länge für write() abzurufen. Das folgende Snippet demonstriert dies:
write.write(studentPassword.c_str(), studentPassword.size());
Mithilfe dieser Techniken können Sie je nach Ihren spezifischen Anforderungen sowohl Klartextzeichenfolgen als auch Binärdaten effektiv in Dateien schreiben.
Das obige ist der detaillierte Inhalt vonWie kann ich Strings korrekt in Dateien in C schreiben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!