2017-04-06 22 views
-1

を終え、私はなぜ知らないが、私は./a.outを行うとき、それは私にそのエラー与える:私はfseekftellコメント場合fseekのプロセスが終了コード11

Process finished with exit code 11

を、それはdoesnのエラーを教えてください。 なぜですか? 論理エラーがありましたか?

コード:

#include <stdio.h> 
#include <stdlib.h> 


int main(){ 


     FILE *file_pointer; 
     int size=0; 


     if((file_pointer = fopen("file.txt","rb")) == NULL) 
     { 
      printf("Ok Man File was charge in the pointer"); 
      fseek(file_pointer, 0, SEEK_END); 
      size=ftell(file_pointer); 

      printf("%d",size); 
      rewind(file_pointer); 
      fclose(file_pointer); 
     } else 
      printf("File Not Found"); 




    return 0; 
} 

答えて

1

あなただけ開いているファイルがを失敗したかどうかをテストし、それが失敗した場合、あなたは試してみて、それを使用するために行きます。 NULLの戻り値はエラーを示し、ハンドルは使用できません。

だから、あなたはあなたの==!=にを変更する必要があります。

if((file_pointer = fopen("file.txt","rb")) != NULL) 
{ 
    ... 
} 

またはわずかに読みやすく(私の意見では)スタイル:

file_pointer = fopen("file.txt","rb"); 
if(file_pointer) 
{ 
    ... 
} 

ところで、前rewindする必要はありませんあなたfclose

+0

あなたは店に戻ってきたビデオではなく、丁寧に巻き戻す必要はありません – pm100

+0

ありがとう、素敵な一日を! –

関連する問題