Ich möchte eine std::string
Variable schreiben, die ich vom Benutzer zu einer Datei akzeptiere. Ich habe versucht, die write()
Methode zu verwenden, und es schreibt in die Datei. Aber wenn ich die Datei öffne, sehe ich Boxen anstelle der Zeichenfolge.Wie schreibe ich std :: string in Datei?
Die Zeichenfolge ist nur ein einzelnes Wort variabler Länge. Ist std::string
dafür geeignet oder soll ich ein Character-Array oder sowas benutzen.
ofstream write;
std::string studentName, roll, studentPassword, filename;
public:
void studentRegister()
{
cout<<"Enter roll number"<<endl;
cin>>roll;
cout<<"Enter your name"<<endl;
cin>>studentName;
cout<<"Enter password"<<endl;
cin>>studentPassword;
filename = roll + ".txt";
write.open(filename.c_str(), ios::out | ios::binary);
write.put(ch);
write.seekp(3, ios::beg);
write.write((char *)&studentPassword, sizeof(std::string));
write.close();`
}
Bitte zeigen Sie Ihren Code. Im Allgemeinen, _if_ korrekt verwendet, ist 'std :: string' in Ordnung dafür. – Useless
Sie müssen die 'Payload' CONTENT der Zeichenfolge speichern, nicht das String-Objekt als solches (das in der Regel nur eine Länge und einen Zeiger auf den tatsächlichen Inhalt enthält) –