2017-05-23 9 views
1

は、ファイルを開く問題ありません。このコードにファイルを開いてCに書き込む方法

void readAndWrite() { 
    char url[]="data.txt"; 
    char url2[]="output.txt"; 
    char data[256]; 
    FILE *arq; 
    FILE *arqw; 

    arq = fopen(url, "r"); 
    arqw = fopen(url2, "w"); 
    if(arq == NULL) { 
     printf("Erro, nao foi possivel abrir o arquivo\n"); 
    } else { 
     while(fgets(data, 256, arq) != NULL) {   
      fprintf(arqw,"This %s",data); 
     } 
    } 
    fclose(arq); 
    fclose(arqw); 
} 

を見て。両方ともNULLを入力しない場合。ただし、読み込みファイルを読み取ることはできません。

+0

arqwがNULLでないことをテストしますか? arqwに書き込むのではなく、stdoutにfprintf(またはprintfを使用)した場合、コードは正常に実行されますか? –

答えて

0

"data.txt"が作成されていますか? argが存在しない場合は、常にNULLになり、ファイルを開くときにエラーが発生します。 modificators https://www.tutorialspoint.com/c_standard_library/c_function_fopen.htm

について 読むあなたは( "errnoには%dとFDである%dは\ nのである"、errnoに、ARQ)はerrno のprintfで持っているもののエラーを読み取ることができます。

char url[] = "data.txt"; 
char url2[] = "output.txt"; 
char data[256]; 
FILE *arq; 
FILE *arqw; 

arq = fopen(url, "r"); 
if (arq == NULL) { 
    printf("Erro, nao foi possivel abrir o arquivo\n"); 
    printf("errno is %d and fd is %d\n", errno, arq); 
} 
else { 
    arqw = fopen(url2, "w"); 
    while ((fgets(data, 256, arq)) != NULL) { 
     fprintf(arqw, "This %s", data); 
    } 
    fclose(arq); 
    fclose(arqw); 
} 
+0

はい。このファイルは作成されました –

+1

Tutorialspointは間違いでいっぱいで、Cを学ぶための恐ろしいリソースです。また、opが明示的にエラーを出さないとの事実を考えれば、これは最高のコメントです。 (私はあなたがまだコメントを投稿できないことを理解していますが、回答セクションを結果として悪用しないでください:)) – George

+0

あなたのコードは大丈夫です。絶対パスを使用する必要がありますか? data.txtの改行は正しいですか? – stark

関連する問題