2017-03-16 3 views
0

Ich habe einen Code geschrieben, um eine Datendatei zu erstellen. Im if-else-Block wird der else-Block ausgeführt, obwohl die Datei nicht am gewünschten Ort erstellt wurde. Wieso ist es so?kann keine Datendatei mit Codeblöcken erstellen

#include <stdio.h> 

int main() { 
    FILE *fptr; 

    fptr = fopen("C:\\test.txt", "w"); 
    if(fptr == NULL) // codition when file is not created 
    { 
     printf("File can not be created. \n"); 
    } 
    else 
    { 
     printf("file has been successfully created. \n"); 

    } 
    //fputs(string, file_pointer_variable) 
    fputs("my first write to file", fptr); 
    fclose(fptr); 
    return 0; 
} 
+3

Sind Sie sicher, Rechte zu haben, um eine Datei in 'c: \\' zu erstellen? Außerdem, wenn die Erstellung fehlschlägt, sollten Sie Ihr Programm beenden oder die Ausführung von Puts und so weiter vermeiden. – LPs

+0

Danke für die Hilfe. Ich habe das Verzeichnis/den Speicherort der Datei geändert und es hat funktioniert. – nischalinn

Antwort

0

Ihr Problem, wahrscheinlich, gehört zu Berechtigungen/Rechte auf Schreiben/Lesen einer Datei in c:\ Erstellen

Ihr Code muss geändert werden, die Datei zu vermeiden, wenn die fopen ausgefallen ist, wie:

#include <stdio.h> 

int main(void) 
{ 
    FILE *fptr; 

    fptr = fopen("C:\\test.txt", "w"); 
    if(fptr == NULL) // codition when file is not created 
    { 
     perror("fopen error: "); 
     return 1; 
    } 
    else 
    { 
     printf("file has been successfully created. \n"); 
     fputs("my first write to file", fptr); 
     fclose(fptr); 
    } 
    return 0; 
} 

Wie Sie sehen können, habe ich perror, die Informationen über Fehler mit Funktion hinzugefügt hinzufügen können.

Verwandte Themen