Кривая работа цикла while - C (СИ)
Формулировка задачи:
Привет други.
Проблема с 2 циклами while вот код
Проблема в том что вместе они в одном коде они работают не корректно.
Первый цикл while на подсчет кол-во символов в файле выдает на 1 больше
а второй на вывод массива пишет всякую лабуду.
Но стоит за комментировать один из циклов они работают корректно.
Не могу понять в чем проблема.Подскажите.
#include <stdlib.h> int main(int argc, char *argv[]) { FILE *f; f = fopen("input.txt", "r"); int i = 0, c,j; int A[3]; while (!feof(f)) { fscanf(f,"%d",&c); j++; } while (!feof(f)) { fscanf(f,"%d",&c); A[i]=c; i++; } printf("All Symblos:\n"); printf("%d", j); printf("\n"); printf("Output Massiv: \n"); for(i=0;i< j;i++) // цикл до j-кол-во символов { printf("%d", A[i]); printf("\n"); } fclose(f); return 0; }
Решение задачи: «Кривая работа цикла while»
textual
Листинг программы
while (fscanf(f,"%d",&c) == 1) { A[i]=c; i++; }
Объяснение кода листинга программы
В данном коде выполняется чтение чисел из файла и их запись в массив. Ниже представлена последовательность выполнения:
- В условии цикла while используется функция fscanf для чтения числа из файла.
- Если функция fscanf вернула 1, то число успешно прочитано, и оно присваивается переменной c.
- Значение переменной c затем присваивается элементу массива A с индексом i.
- Индекс i затем увеличивается на 1.
- Цикл продолжается до тех пор, пока функция fscanf не вернет 0, что означает, что достигли конца файла или было пропущено число.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д