Чтение из файла в C - Неправильный вывод - PullRequest
0 голосов
/ 23 декабря 2018

Я пишу код для чтения из файла, но он всегда печатает неправильный вывод.

Код выглядит следующим образом:

int n;
struct threeNum num = { 0 };
FILE *fptr;

if ((fptr = fopen("input.txt", "rb")) == NULL) {
        printf("Error! opening file\n");

        // Program exits if the file pointer returns NULL.
        exit(1);
    }

for (n = 1; n < 5; ++n)
{
        fread(&num, sizeof(struct threeNum), 1, fptr);
        printf("n1: %d\tn2: %d\tn3: %d\n", num.n1, num.n2, num.n3);
}
fclose(fptr);

Структура:

struct threeNum
{
    char n1, n2, n3;
};

И файл .txt:

1 2 3
5 6 7
6 6 9
5 5 5
8 7 2

И я всегда печатаю нули.

1 Ответ

0 голосов
/ 23 декабря 2018

fread читает двоичные объекты, но ваш файл является текстовым.Вам нужно прочитать текст, а затем проанализировать его (например, с помощью fscanf или fgets, за которым следует sscanf).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...