2017-03-16 19 views
0

データファイルを作成するためのコードを記述しました。 if-elseブロックでは、elseブロックが実行されますが、ファイルは目的の場所に作成されません。それはなぜそうですか?コードブロックを使用してデータファイルを作成できません

#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

ファイルを 'c:\\'に作成する権利はありますか?さらに、作成が失敗した場合は、プログラムを終了するか、putsなどを実行しないでください – LPs

+0

助けてくれてありがとう。私はファイルのディレクトリ/場所を変更し、それは働いた。 – nischalinn

答えて

0

あなたの問題は、おそらく、c:\でファイルを作成/書き込みのアクセス権/権利に属し

あなたのコードは fopenが失敗した場合のように、ファイルを使用しないように変更する必要があります

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

ご覧のとおり、fopen機能でエラーが発生した場合の情報を追加できるperrorを使用しました。

関連する問題