Unterschied des Codes bei Codeblocks & Eclipse
-
Es geht einfach nicht ohne...
ich brauche noch einmal eure Hilfe.
Ich hab ein Code geschrieben zum anlegen einer txt Datei in Eclipse funktioniert das auch super..jetzt hab ich den gleichen Code bei Codeblocks und der legt die Datei irgendwie nicht an
[code]
//Anlegen der Datei
FILE*fp;//Zeiger auf Datenstrom der Datei
printf("Geben Sie den Dateinamen ein:");//Eingabe des Dateinamens
fgets(dateiName, FILENAME_MAX, stdin);//Speicherung des Dateinames
strcat(dateiName, dateiEndung);// Dateiendung txt wird automatisch an den Dateinamen gehängt
fp=fopen(dateiName, "w");//Datei wird neu angelegt oder überschrieben
printf("Datei wurde angelegt\n");
-
Wie und wo ist denn die Variable "dateiName" definiert? Ansonsten wäre es eine gute Idee, (a) mögliche Fehler-Rückgaben auszuwerten und (b) sich das ganze mal im Debugger anzusehen.
-
Mal angenommen, dass dein Programm korrekt ist, ist ein häufiger Fehler bei solchen Fragen, dass der Nutzer falsche Erwartungen an das derzeitige Arbeitsverzeichnis hat und die Datei ganz woanders erstellt wurde als du denkst. Gib mal einen absoluten Pfad an. Und auch ein immer öfters vorkommender Punkt (wo auch bei Windows so langsam nicht mehr jeder als Admin unterwegs ist) sind fehlende Schreibrechte.
-
sry die habe ich nicht mit rein kopiert
char dateiName[FILENAME_MAX];
char dateiEndung [1024]= ".txt";das ist ja das komische...er gibt mir keine Fehlermeldungen aus...
Danke erst einmal ich werde euren Anregungen mal nachgehen...
Lg
-
Jeanny11 schrieb:
sry die habe ich nicht mit rein kopiert
char dateiName[FILENAME_MAX];
char dateiEndung [1024]= ".txt";das erste könnte etwas zu klein sein, wenn der Nutzer die komplette Länge der Eingabe ausnutzt, das zweite ist definitiv zu groß für die Dateiendung.
das ist ja das komische...er gibt mir keine Fehlermeldungen aus...
Die wenigsten Funktionen melden Probleme mit einer großen Hinweismeldung, üblicher sind Rückgabewerte, die man auffangen und verarbeiten muß:
fp = fopen(dateiName,"w"); if(!fp) printf("Fehler beim Datei anlegen\n"); else printf("Erfolg\n");
(nur um das Prinzip zu verdeutlichen)
-
Jeanny11 schrieb:
das ist ja das komische...er gibt mir keine Fehlermeldungen aus...
Das ist auch korrekt so. Dein Programm ist wohl syntaktisch richtig und kann vom Compiler übersetzt werden. Aber dies ist C, da wird nichts unnötiges gemacht, was der Programmierer nicht will (darum ist es so schnell), aber der Preis ist, dass man nichts geschenkt bekommt. Wenn da Fehlermeldungen kommen sollen, dann musst du selber Abfragen dafür programmieren und selber welche ausgeben lassen.
-
Mh ja das mit dem geht nicht und geht hat schon echt weitergeholfen...also er hat es wirklich nicht abgespeichert...mir wurde jetzt nochmal eine andere möglichkeit mit fflush,strcat und strcpy nahegelegt mit der es jetzt auch funktioniert.
Danke an euch keine ahnung ob das hier unpassend ist aber super forum und echt hilfsbereite leute