2017-03-24 16 views
0

main에서 파일 포인터를 만들고 그것을 함수로 전달하면 파일을 여는 별도의 함수를 갖고 싶지만 할 수 없다. 파일을 닫습니다. 내가 뭘 놓치고 있니?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

"그렇다면 if (fclose (* inFile) == 0)을 확인해야합니다."-하지만 실패하면 어떻게해야합니까? –

+0

@NeilButterworth : 'else' 블록을 사용 하시겠습니까? –

+0

fclose()가 실패하면 대체 무엇입니까? 플로피 디스크가 나온 이래로 적어도 누군가가 fclose()에 실패했는지에 대해서도 관심이 있습니다. –