2016-12-05 9 views
1

Я пытаюсь запустить простую программу с Codeblocks 16.11. Я застреваю пытаемся прочитать символ из файла в следующем коде ...C fread char Codeblocks

FILE *fo; 
FILE *ft; 
char c; 

if ((fo = fopen("mayus.txt", "r")) == NULL){ 
     perror("opening mayus"); 
    } 

int m; 
m= fread(c, 1, 1, fo); 
printf("I just read for the first time with result m = %d\n",m); 

моего файла mayus.txt его просто TXT с «ABCDEFGHIJK» писал внутри. Я ожидаю увидеть printf с m = 1, но я продолжаю получать m = 0 в консоли.

+2

Заметим, что 'PError()' сообщает об ошибке, но делает вернуть. Если есть ошибка при открытии файла, ваш код продолжает использовать нераспечатанный дескриптор файла. Это не будет полезно для здоровья вашей программы. –

ответ

3

Сначала проверьте fread прототип:

size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);

и так m= fread(c, 1, 1, fo); неправильно

Что вам нужно

m = fread(&c, 1, 1, fo); // the first param should be a pointer to the buffer 
+0

Ты совершенно прав. Такая простая ошибка. Большое спасибо" – Asdemuertes

 Смежные вопросы

  • Нет связанных вопросов^_^