[C/C++] string Variable in einer Datei speichern

Radhad

Erfahrenes Mitglied
Hallo zusammen!

Ich hab ein dringendes Problem: ich will einen String in eine Datei speichern in der Form:
Code:
string Name;

hier mal das beispiel wie es gedacht ist:
Code:
FILE *fp;
fp=fopen(Dateiname,"w");
fprintf(fp,"%d\n",m_KontoNr);
fprintf(fp,"%d\n",m_Kontoart);
fprintf(fp,"%s\n",m_Vorname);
fprintf(fp,"%s\n",m_Nachname);
fprintf(fp,"%lf\n",m_Kontostand);
fprintf(fp,"%s\n",m_Strasse);
fprintf(fp,"%s\n",m_Hausnummer);
fprintf(fp,"%s\n",m_PLZ);
fprintf(fp,"%s\n",m_Ort);
fprintf(fp,"%s\n",m_Telefon);
fclose(fp);

Bei einem char-Wert nehme ich %s, was muss ich für einen string-Wert nehmen?
Oder eignet sich da ein anderer Befehl besser zu?


Ich hoffe auf schnelle Antwort.

MfG Radhad
 
Da nimmst du einfach const char* std::string::c_str() . Diese Methode der Klasse std::string liefert einen C-kompatiblen char-Pointer auf das erste Zeichen der Zeichenkette. Beispiel:
Code:
fprintf( fp, "%s\n", m_Vorname.c_str() );
Schnell genug? ;)
 
Perfekt!

Danke, werd ich direkt ausprobieren.

Hab eins übersehen: wie kann ich dann auch die Strings speichern?
 
Ich würde mit std::ifstream arbeiten statt mit den ollen File-Routinen, aber du könntest es vielleicht mit
fscanf() machen. Jedenfalls musst du zunächst in einen Buffer einlesen (ein von dir alloziertes char-Array), dann kannst du daraus an den String zuweisen.
 
Mit der MSDN kann ich leider nicht viel anfangen...

%s hab ich auch dafür verwendet...
 
Wieso kannst du mit der MSDN nichts anfangen? So ganz ohne Dokumentation geht es ja nicht, oder? Und fscanf() ist nicht plattformspezifisch.
 
Zurück