Посимвольное считывание с файла и запись в массив - 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)закрывает файл после выполнения всех операций.