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

Узнай цену своей работы

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

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

Решение задачи: «Обнуление потока вывода из файла»

textual
Листинг программы
  1. #include <stdio.h>
  2.  
  3. int main(){
  4.     freopen("1.txt","r",stdin);
  5.     int x;
  6.     scanf("%d", &x);
  7.     printf("%d\n", x);
  8.     fclose(stdin);
  9.     freopen("1.txt","r",stdin);
  10.     while (scanf("%d", &x) != EOF){
  11.         printf("%d ", x);
  12.     }
  13.     return 0;
  14. }

Объяснение кода листинга программы

  1. Включаем заголовочный файл stdio.h, который содержит функции для работы с потоком ввода/вывода
  2. Закрываем стандартный поток ввода (stdin) и открываем файл 1.txt для чтения
  3. Считываем из файла целочисленное значение в переменную x с помощью функции scanf
  4. Выводим значение x на экран с помощью функции printf
  5. Закрываем файловый поток (stdin)
  6. Открываем файл 1.txt для чтения
  7. В цикле while считываем из файла целочисленные значения в переменную x с помощью функции scanf
  8. Выводим значение x на экран с помощью функции printf, добавляя пробел в конце
  9. Возвращаем 0, чтобы указать, что программа успешно завершилась

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы