Fehler wenn ich in Datei schreiben will
-
save_to::data_input hat keinen platz für input.
Kurt
-
das char array wird doch verwendet damit ich weiss was in die datei geschrieben werden soll.
(cin>>data_input)
und wenn ich data_input[100] oder so schreib ändert sich auch nix, der fehler kommt immernoch
-
Hast du auch fclose(pFile) benutzt?
-
ja aber da ist kein platz für input.
da fehlt sowas wiedata_input = new char[100];Kurt
-
zuk erklär mal genauer wie ich es in den code integrieren soll...
und bei fclose(file) hat sich auch nix geändert fehler is immernoch da
-
Glaube "r+" ist nicht der richtige mode wenn das file noch nicht existiert.
"w" sollte genügen.
so sollete es gehenclass save_to { private: FILE* data_list; int list[100]; char * data_input; public: virtual ~ save_to() { delete [] data_input; } int save_to_file() { data_input = new char[1000]; cin>>data_input; data_list = fopen("list.ini", "w"); fprintf(data_list,"%s", data_input); fclose(data_list); return 0; }; };Kurt
-
tatsächlich es geht... es lag wohl an der zeile
virtual ~ save_to() { delete [] data_input; }die nicht bei mir vorhanden war...
könntest du sie bitet mal erklären?(ich weiss nicht was sie bewirkt^^)
-
Ne es lag am "r+".
delete [] data_input;gibt den mit new allocierten speicher wieder frei.
den speicher allokiertst du aber besser in einem konstruktor.
class save_to { private: FILE* data_list; int list[100]; char * data_input; public: save_to() { data_input = new char[1000]; } virtual ~ save_to() { delete [] data_input; } int save_to_file() { cin>>data_input; data_list = fopen("list.ini", "w"); fprintf(data_list,"%s", data_input); fclose(data_list); return 0; }; };Kurt
-
ok... kannst du mir eventuell noch kurz sagen wie ich ein return in nen textdatei einfüge (beispiel: fprintf(file,"\n", char); funktioniert nicht)
-
wenn schon fprintf dann
int ch = '\n'; fprintf(file "%c", ch );Kurt
-
Es handelt sich hier doch um ein konsolen programm oder? Dann benutze mal den Doszeilenumbruch "\r\n" anstatt von "\n".
int ch = "\r\n"; fprintf(file "%c", ch );müsste auch so klappen
-
Hallo
int ch = "\r\n";nein, das wird bestimmt nicht klappen.
bis bald
akari
-
Chris++ schrieb:
Es handelt sich hier doch um ein konsolen programm oder? Dann benutze mal den Doszeilenumbruch "\r\n" anstatt von "\n".
int ch = "\r\n"; fprintf(file "%c", ch );müsste auch so klappen
So sicher nicht erstens kannst in einem int keine Zeichenkette ( "\r\n" ) speichern. Dann gibt "%c" bei fprintf sicher nur ein Zeichen aus und '\n' wird bei einem file das im textmodus geöffnet ist das '\n' sowieso als "\r\n" ( DOS/Windows ) ausgegeben.
Kurt