2017-04-06 4 views
-1

Ich weiß nicht, warum, aber wenn ich ./a.out tun, es gibt mir diese Fehlermeldung:fseek Prozess mit Exit-Code beendet 11

Process finished with exit code 11

Wenn ich die fseek und die ftell Kommentar, es doesn‘ t gib mir einen Fehler? warum? Ich habe einen logischen Fehler gemacht?

Code:

#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; 
} 

Antwort

1

Sie gerade getestet, ob die Datei geöffnet nicht, und wenn es Ihnen nicht gehen, um zu versuchen und zu nutzen. Der Rückgabewert NULL weist auf einen Fehler hin, und Sie können das Handle nicht verwenden.

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

oder leicht lesbarer Stil (meiner Meinung nach):

Also, sollten Sie Ihren ==-!= ändern

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

By the way, gibt es keine Notwendigkeit zu rewind vor Sie fclose.

+0

es ist kein Video Sie kehren in den Laden zurück, Sie müssen nicht zurückspulen, um höflich zu sein – pm100

+0

Vielen Dank, einen schönen Tag! –

Verwandte Themen