2017-03-16 3 views
0

J'ai écrit un code pour créer un fichier de données. Dans le bloc if-else, le bloc else est exécuté mais le fichier n'est pas créé à l'emplacement souhaité. Pourquoi est-ce vrai?Impossible de créer un fichier de données à l'aide de blocs de code

#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

Êtes-vous sûr d'avoir le droit de créer un fichier dans 'c: \\'? En outre, si la création échoue, vous devez terminer votre programme ou éviter d'exécuter des puts et ainsi de suite – LPs

+0

Merci pour l'aide. J'ai changé le répertoire/emplacement du fichier et cela a fonctionné. – nischalinn

Répondre

0

Votre problème, probablement, appartient aux autorisations/droits sur l'écriture/création d'un fichier dans c:\

Votre code doit être modifié pour éviter d'utiliser le fichier si le fopen a échoué, comme:

#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; 
} 

Comme vous pouvez le voir, j'ai utilisé perror qui peut ajouter des informations sur l'erreur survenue avec la fonction fopen.