Посимвольное считывание с файла и запись в массив - C (СИ)
Формулировка задачи:
Всем привет, подскажите, правильно ли я выполняю посимвольное(Нужно считывать, не зная заранее сколько символов считаешь) считывание с файла и запись в массив f, если нет, то исправьте, пожалуйста, можно через какую-либо другую функцию, спасибо.
FILE *file; file = fopen("input.txt", "r"); int i = 0, c; fgets (f, c, file); while ((c = fgetc(file)) != EOF) { putchar(c); f[i]=c; i++; } while(f[i]!='\0') { if (f[i]=='\n') { f[i]='\0'; } i++; } printf("Text:\n%s!\n", f); fclose(file);
Решение задачи: «Посимвольное считывание с файла и запись в массив»
textual
Листинг программы
FILE *file; file = fopen("input.txt", "r"); int i = 0, c; char f[256]; while ((c = fgetc(file)) != EOF) { f[i]=c; i++; } printf("Text:\n%s!\n", f); fclose(file);
Объяснение кода листинга программы
- Создается указатель на файл
file
с помощью функцииfopen(
input.txt,
r)
. - Инициализируется переменная
i
со значением 0, которая будет использоваться для подсчета количества прочитанных символов. - Создается переменная
c
, которая будет использоваться для хранения прочитанного символа. - Создается массив
f
типаchar
с размером 256 для хранения прочитанных символов. - Запускается цикл
while
, который будет выполняться до тех пор, покаc
не станет равнымEOF
. - Внутри цикла каждый прочитанный символ сохраняется в массиве
f
с помощью оператора=
, а переменнаяi
увеличивается на 1. - После окончания цикла выводится на экран текст, сохраненный в массиве
f
, с помощью функцииprintf(
Text:\n%s!\n, f)
. - Функция
fclose(file)
закрывает файл после выполнения всех операций.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д