Программа для подсчета строк не выводит количество строк

Программа для подсчета строк не выводит количество строк

Изучаю язык Си по учебнику Ритчи. В теме по подсчёту строк написана такая программа:

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). Либо можно средствами ОС перенаправить стандартный ввод на ввод из файла. Например:

test.exe <test.c

тогда программа посчитает количество символов в файле.

Благодарю за ответ.
Написал код заново, запустил программу. Ввёл пару символов — нажал комбинацию клавиш ctrl z, но ничего не произошло (напечаталось ^z). Заранее извиняюсь за глупые вопросы (похоже впереди их будет ещё больше)

Попробуй ввести:

qwe<Enter>
<Ctrl-Z><Enter>

Должно напечатать 4: посчитаются символы 'q', 'w', 'e' и символ конца строки.

sam, сделал так, как вы посоветовали. Программа посчитала,наконец-то, количество символов)
Спасибо за помощь.

Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.

Ответить

Вы можете использовать разметку markdown для оформления комментариев и постов. Используйте функцию предпросмотра для проверки корректности разметки.

Пожалуйста, оформляйте исходный код в соответствии с правилами разметки. Для того, чтобы вставить код в комментарий, скопируйте его в текстовое поле ниже, после чего выделите то, что скопировали и нажмите кнопку «код» в панели инструментов. Иначе ваш код может принять нечитаемый вид.

Либо производите оформление кода вручную, следующим образом:

``` #include <iostream> using namespace std; int main() { // ... } ```

Предпросмотр сообщения

Ваше сообщение пусто.