2017-03-24 4 views
0

メインではファイルポインタを作成し、それを関数に渡して開きます。ファイルを閉じるための別の関数が必要ですが、ファイルを閉じます。私は何が欠けていますか?FILEを使用してファイルを閉じる関数を呼び出すにはどうすればいいですか?fp

私はエラーは発生しませんが、私が確認している方法は、ファイルが閉じられなかったことを示しています。

ありがとうございました。 fclose 0を返し、成功に、あなたがif (fclose(*inFile) == 0)をチェックする必要があります。

int _tmain(int argc, _TCHAR* argv[]) 
{ 
    FILE *inFile, *outFile; 
    FileOpen(&inFile, &outFile); 
    FileClose(&inFile, &outFile); 

    getch(); 
    return 0; 
} 

void FileOpen(FILE **inFile, FILE **outFile) 
{ 
//--Open InFile-------------------------------- 
    if ((*inFile = fopen("a.txt","r")) == NULL){ 
     printf("\nError Opening File. "); 
     exit(0); 
    } 
    else { 
     printf("File Opened\n"); 
     } 

//--Open OutFile-------------------------------- 
    if ((*outFile = fopen("b.txt","w")) == NULL){ 
     printf("\nError Opening File. "); 
     exit(0); 
    } 
    else { 
     printf("File Opened\n"); 
     } 
} 


void FileClose(FILE **inFile, FILE **outFile) 
{ 
//--Close InFile---------- 
    if (fclose(*inFile)){ 
     printf("File Closed\n"); 
    } 
    else { 
     printf("\nError Closing InFile File. "); 
    } 

//--Close outFile--------- 
    if (fclose(*outFile)){ 
     printf("File Closed\n"); 

    } 
    else { 
     printf("\nError Closing OutFile File. "); 
    } 
} 
+0

時にはそれはとても簡単です:)ありがとう!! – dmaelect

答えて

6

あなたはreturn valueを誤解されています。

+0

"だから、もしあなたが(fclose(* inFile)== 0)をチェックする必要がある" - しかし、失敗した場合はどうすればいいですか? –

+0

@NeilButterworth: 'else'ブロックを使用しますか? –

+0

私はfclose()が失敗した場合、あなたの選択肢は何ですか?フロッピーディスクの時代から、誰かがfclose()の失敗を経験したことがあるかどうか知りたいと思っています。 –

関連する問題