Обнуление потока вывода из файла - C (СИ)

Формулировка задачи:

Есть файл с данными типа : 11 22 5 s 6 7 И такой кусочек кода:
FILE *f = fopen(name, "r");
    if (f == NULL)
        return 1;
    if (getc(f) == EOF)
        return 2;
    while (feof(f) == 0)
    {
        fscanf(f, "%i", &x[i]);
                ......
Вопрос заключается в следующем: вызов getc(f) забирает первый символ из файла (это 11), но поскольку вызов этой функции существует лишь для проверки условия, я хочу далее (в цикле) при использовании fscanf начать считывание с тех же одинадцати (с первого символа из файла). Думал использовать fflush, но не помогло: все равно fscanf начинает считывание со следующего символа (то есть 22). Подскажите, пожалуйста, как выбраться из этой ситуации

Код к задаче: «Обнуление потока вывода из файла - C (СИ)»

textual
#include <stdio.h>
 
int main(){
    freopen("1.txt","r",stdin);
    int x;
    scanf("%d", &x);
    printf("%d\n", x);
    fclose(stdin);
    freopen("1.txt","r",stdin);
    while (scanf("%d", &x) != EOF){
        printf("%d ", x);
    }
    return 0;
}
Эта работа вам не подошла?

Вы всегда можете заказать любую учебную работу у наших авторов от 20 руб.

7   голосов, оценка 4.143 из 5


СДЕЛАЙТЕ РЕПОСТ