Подсчёт строк работает некорректно - C (СИ)
Формулировка задачи:
При следующих входных данных, получаются неверные результаты:
1) 123456
1123123123
345345^z
на выходе получаю 2
2) 123456
1234564564
5656
4564564^z
на выходе получаю 3
Почему так, предполагаю, что почему-то символа конца потока не срабатывает. Он почему-то интерпретируется как другой символ ('<-').
int count = 0; while((ch = getchar()) != EOF) if(ch == '\n') count++ printf("%i\n", count);
Решение задачи: «Подсчёт строк работает некорректно»
textual
Листинг программы
#include <stdio.h> int main(){ int count = 0; int ch; while((ch = getchar()) != EOF) if(ch == '\n') count++; printf("%i\n", count); return 0; }
Объяснение кода листинга программы
В этом коде:
- Объявляются две переменные:
count
иch
. - Переменная
count
инициализируется значением 0. - В цикле
while
считывается каждый символ из стандартного ввода до конца файла. - Если считанный символ является символом новой строки ('\n'), то переменная
count
увеличивается на 1. - После окончания чтения файла, выводится значение переменной
count
, которое является количеством строк в файле. - Программа возвращает 0, что означает успешный конец работы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д