Программа для подсчета строк не выводит количество строк
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.
Изучаю язык Си по учебнику Ритчи. В теме по подсчёту строк написана такая программа:
main ()
{
long nc;
nc = 0;
while (getchar() != EOF)
++nc;
printf («%ld\n», nc);
}
Задача программы, как я понял, выводить на экран число введённых символов (Printf (%ld\n", nc). Но при запуске программы у меня почему то производится только вывод введённых символов и все (как в обычном редакторе). Вопрос, во-первых, в том правильно ли я понял суть программы, а во-вторых, если правильно, то почему программа не выводит число строк¿?
P.S: среда программирования CodeBlocks (вдруг в ней дело)
ShaDaKu, «во-первых» — правильно. «Во-вторых» — программа все-таки должна выводить количество символов, а не строк. «Почему» — потому что эта программа читает символы из стандартного ввода (STDIN), и конец файла она ожидает найти в нем. Следовательно, если ввод идет с клавиатуры, то закончить его надо символом конца файла (ctrl-Z в Windows или ctrl-D в Linux). Либо можно средствами ОС перенаправить стандартный ввод на ввод из файла. Например:
тогда программа посчитает количество символов в файле.
Благодарю за ответ.
Написал код заново, запустил программу. Ввёл пару символов — нажал комбинацию клавиш ctrl z, но ничего не произошло (напечаталось ^z). Заранее извиняюсь за глупые вопросы (похоже впереди их будет ещё больше)
Попробуй ввести:
Должно напечатать 4: посчитаются символы 'q', 'w', 'e' и символ конца строки.
sam, сделал так, как вы посоветовали. Программа посчитала,наконец-то, количество символов)
Спасибо за помощь.