[C++] struct (AnsiString und int) in Datei zu schreiben

Sven_S

Grünschnabel
Hallo,

ich schreibe gerade ein kleines C++ mit dem BorlandC++ Builder 6.0.

Dabei möchte ich den Inhalt einer struct in einer Textdabei abspeichern.

Code:
struct Datensatz
{
   AnsiString Name;
   int Nummer;
} att_Datensatz[50];

Jetzt bin ich etwas verunsichert, ob ich eher mit fwrite (ist das eher C? ...biete mir mein BCB aber an) oder halt irgendwie iostream verwenden soll.


Ich habe es erstmal mit fwrite versucht. Dummerweise benötigt man dafür ja die genaue Länge der zu schreibenen Strings oder Zahlen, was sich aber nicht wirklich einfach ermitteln ließt. Auch gäbe es da noch das Typen Problem... AnsiString in struct und zum speichern müsste es ja ein char sein.

Code:
   stream_Datensatz = fopen("Sicherung.txt", "w");
// 
   fclose(stream_Datensatz);

Stehe da irgendwie ziemlich aufm Schlauch und weiß nun nicht wie weiter.

Hat jemand einen guten Tipp für ein Anfänger, wie ich die Daten am besten in die Textdatei bekomme?

Danke.

MfG
Sven
 
moin


In C mit fopen:
Code:
stream_Datensatz = fopen("Sicherung.txt", "w");

fprintf(stream_Datensatz, "%s\n", att_Datensatz[0].Name.c_str());
fprintf(stream_Datensatz, "%d\n", att_Datensatz[0].Nummer);

In C++ mit ofstream:
Code:
ofstream datei("Sicherung.txt");

datei<< att_Datensatz[0].Name.c_str();
datei<< att_Datensatz[0].Nummer;

Hab es jetzt nur mal hingeklatscht, drum sind Fehler vorbehalten, sollte baer laufen.


mfg
umbrasaxum
 
Hallo umbrasaxum,

hat wunderbar funktioniert. Vielen Dank!
Wenn man sieht, wie "simpel" die Lösung war, ist einem die Frage ja richtig peinlich. :rolleyes:

Mit paar Erweiterungen (for- & if-Schleife, etc..) passt es nun wunderbar.


MfG
Sven


/Edit: Aber nochmal eine Frage... ist die Verwendung von fopen und fgets in C++ unsauberer Stil?
 
Zuletzt bearbeitet:
moin


Ich persönlich finde es nciht gut C und C++ zu mischen, manchmal führt das auch zu Fehlern, aber meist kann man das machen.


mfg
umbrasaxum
 
Zurück