Fscanf целые числа из файла, игнорируя окружающие символы - PullRequest
0 голосов
/ 08 октября 2018

Я пытаюсь прочитать последовательность целых чисел из текстового файла, который отформатирован следующим образом:

int1
int2
int3
int4
int99

т.е.перед каждым целым числом стоит одна и та же строка, в данном случае 'int'.

Я пробовал следующий код, но программа печатает только первое целое число, а затем завершается.

FILE *fp = fopen("data.txt", "r");
int num;
while (fscanf(fp, "int%d", &num) == 1)
    printf("%d\n", num);

fclose(fp);

Ответы [ 2 ]

0 голосов
/ 08 октября 2018

добавление пробела после% d выполнит работу.

  (fscanf(fp1,"int%d ", &num)==1)
0 голосов
/ 08 октября 2018

Это потому, что вы не потребляете символ новой строки и он отсутствует во входном потоке.

Просто измените ваш fscanf, как показано ниже.

fscanf(fp, "int%d\n", &num) == 1
                 ^^-->read new line
...