[c++] Daten werden nicht korrekt in eine Datei geschrieben

Messiahs_128

Mitglied
Hallo,
ich hab mir eine verkettete Liste geschrieben. Dessen Inhalt soll ich eine Datei geschrieben werden. Leider schreibt er mir nur vierecke in die datei. ich programmiere unter Win XP mit DEV++ 4.9.9.2. DIe daten die in der LIste stehen sind alle korrekt.
Danke im vorraus

Code:
void saveList()
            {
             cout<<"Wo sollen daten gespeichert werden?"<<endl;
              cin>>fileName;
              ofstream fout(fileName,ios::app);
              p_akt=p_root;
              
              while(p_akt!=NULL)
              {
                 string n;
                 char *c;
                 
                 n=p_akt->getArtikelBez();
                 strcpy(c,n.c_str());
                 fout << c << "*";
                 n=p_akt->getME();
                 strcpy(c,n.c_str());
                 fout << c << "*";
                 n=p_akt->getGefahrKlasse();
                 strcpy(c,n.c_str());
                 fout << c << "*";
                 n=p_akt->getHersteller();
                 strcpy(c,n.c_str());
                 fout << c << "*";
                 n=p_akt->getLagermenge();
                 strcpy(c,n.c_str());
                 fout << c << "*";
                 n=p_akt->getArtikelpreis();
                 strcpy(c,n.c_str());
                 fout << c << "*";
                 n=p_akt->getWarengruppe();
                 strcpy(c,n.c_str());
                 fout << c << "*";
                 p_akt=p_akt->next;
               }
              fout.close(); 
            }
 
Du hast vergessen, den Zeiger c zu initialisieren (z.B. durch Speicherreservierung)

Ganz abgesehen davon: warum willst du den String erst in einen anderen Speicherbereich kopieren, bevor du ihn ausgibst?
 
hm gute Frage hab mir ein tutoriall durch gelesen und da wurde das mit chars gemacht. ich hab jetzt den string rein geschrieben jetzt geht es.
thx
 
Du benutzt in listeFuerCHem.h wiederum eine Zeigervariable, ohne sie zu initialisieren (chemikalie *hilf).

Außerdem ist es äußerst ungewöhnlich, die Implementation einer Klasse in der Headerdatei abzulegen. Weiterhin sollte im Konstruktor einer Klasse selbige nur initialisiert werden – das Auslesen von Daten aus einer Datei ist in einer separaten Methode besser aufgehoben.
 
Zurück