2017-03-24 46 views
0

在主要我创建一个文件指针,将它传递给一个函数打开它,我想有一个单独的函数来关闭文件,但我不能关闭文件。我错过了什么?如何调用函数来关闭文件使用FILE * fp

我没有得到一个错误,但我检查的方式表明文件没有关闭。

感谢您对此的帮助。

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的回报,所以你需要检查if (fclose(*inFile) == 0)

+0

“所以你需要检查是否(fclose(* inFile)== 0)” - 但如果失败怎么办? –

+0

@NeilButterworth:使用'else'块? –

+0

我的意思是如果fclose()失败,你有什么选择?我也有兴趣知道是否有人曾经发生过fclose()失败,至少从软盘开始就是如此。 –

相关问题