Подсчёт строк работает некорректно - 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, что означает успешный конец работы.