fgetc возвращает неожиданное значение 49, когда ожидается 1 - PullRequest
0 голосов
/ 03 мая 2018

У меня проблемы с использованием функции fgetc для чтения значения из файла. Это код, который я использую:

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

int main()
{
    int k;

    FILE* rede = fopen("/home/leocal/Desktop/Poli/2018-1/Numérico/EP1/Redes/1_Stevenson/a.txt", "r");

    if (rede == NULL) {
        printf("Couldn't open file\n");
        return 1;
    }

    k = fgetc(rede);
    if (k!=EOF) {
    printf("printing k : %d",k);
    }

    fclose(rede);

    return 0;
} 

Файл "a.txt" содержит один символ "1", но k получает значение 49.

1 Ответ

0 голосов
/ 03 мая 2018

В описании fgetc() написано:

Возвращает символ , указанный в данный момент внутренним индикатором положения файла

Вы читаете символ '1' и затем печатаете его десятичное значение с помощью

printf("printing k : %d",k);

Чтобы напечатать значение символа с помощью printf, используйте %c:

printf("printing k : %c",k);

Вы можете узнать больше о printf и о том, как отформатировать его вывод здесь .

...