Verzeichnisse
-
Hi! Ich würde gerne eine Datei in ein Verzeichnis speichern, das der user angeben muss. Leider hab ich keine ahnung wie das gehen soll...
Das ganze soll möglichst portabel sein.
Reicht es einfach, die Verzeichnisse/Unterverzeichnisse mit einem slash, bzw. backslash zu trennen und dann der fopen() funktion mit dem Dateinamen zu übergeben, oder funktioniert das nicht?
Was passiert, wenn das verzeichnis nicht existiert, oder die datei schon existiert, oder wenn man keine Schreibrechte für das verzeichnis hat?Das waren jetzt viele fragen, aber ich hoffe mir kann wer helfen.
mfg, DrPhil_Guth
-
FILE *f; char file_name[255]; printf("Wie soll die neue Datei heissen : "); fgets(file_name,80,stdin); fflush(stdin); getchar(); /* Bei Probleme mit scanf() die Funktion getchar() anstatt fflush(stdin) verwenden !!! */ f = fopen(file_name, "w"); if(f == NULL) { printf("Konnte Datei %s nicht erstellen\n"); exit(0); }
Aba wie du in Die Datei schreibst denk ich mal weißt du
-
Ja... Danke... Nur WAS für ein fehler das ist weiß ich noch immer nicht. Und ich weiß auch nicht, wie ich selbst ein Verzeichnis bestimmen kann, in der die datei geöffnet wird.
-
DrPhil_Guth schrieb:
Reicht es einfach, die Verzeichnisse/Unterverzeichnisse mit einem slash, bzw. backslash zu trennen und dann der fopen() funktion mit dem Dateinamen zu übergeben, oder funktioniert das nicht?
doch, das geht.
beispiel: FILE *fp = fopen ("c:\\dir1\\dir2\\filename", "wb");
legt eine datei 'filename' im verzeichnis 'c:\dir1\dir2' an und öffnet die zum schreiben.
bei '\' in stringkonstanten muss man immer zwei '\' hintereinander schreiben, weil das erste '\' als anfang einer escape-sequenz interpretiert wird und '\' ist eben die escape-sequenz für '\'
Dry Gin schrieb:
/* Bei Probleme mit scanf() die Funktion getchar()
anstatt fflush(stdin) verwenden !!! */mit:
while (getchar() != '\n') { // nix }
stdin ausmisten.
fflush(stdin) ergibt 'undefiniertes verhalten'...