Посимвольное считывание из файла - в конце строки появляется символ "Я" - C (СИ)
Формулировка задачи:
Здравствуйте! Который раз сталкиваюсь с этой проблемой!
Нужно считать информацию из файла и вывести её на экран.
Всё считывает и выводит, НО в конце на экране появляется буква Я
в этом примере их появилось аж 41 шт...--- что это? почему появляется и как это подавить?
#include<stdlib.h> #include<stdio.h> #include<conio.h> #include<windows.h> #define N 250 int main() { system("chcp 1251 > NULL"); char len[N]; int i=0; FILE *str=fopen("test.txt", "rt"); do { len[i]=fgetc(str); fputc(len[i],stdout); i++; } while(len[i]!=EOF); return 0; }
Решение задачи: «Посимвольное считывание из файла - в конце строки появляется символ "Я"»
textual
Листинг программы
while(len[i]!=EOF) { // проверяем предыдущее значение в массиве(кстати откуда оно взялось при первом заходе в цикл?) i++; // идем к следующему элементу массива len[i]=fgetc(str); // читаем в него fputc(len[i],stdout); // выводим его };
Объяснение кода листинга программы
- В цикле while происходит посимвольное считывание из файла до тех пор, пока не достигнется конец файла (EOF).
- Переменная
i
используется как индекс для массиваlen
. - Значение
len[i]
получается с помощью функции fgetc, которая считывает следующий символ из файла. - Считанный символ выводится на экран с помощью функции fputc.
- Значение
len[i]
увеличивается на единицу после каждого прохода цикла, так как переменнаяi
увеличивается на единицу после каждого прохода цикла. - В начале цикла, значение
len[i]
не равно EOF, поэтому цикл выполняется. - Когда достигается конец файла, значение
len[i]
становится равным EOF, и цикл прекращается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д