LINUX.ORG.RU

Помогите разобраться!


0

0

В книге Кернигана и Ритчи (у меня перевод на русском языке) "Язык программирования С" 
есть пара примеров, которые у меня не выдают абсолютно никакого результата, 
а компилятор не сообщает о каких-либо ошибках. Можете объяснить почему так происходит? 
Вот 2 примера которые не выдают никакого сообщения:

пример 1:

#include <stdio.h>

main()
{
	double nc;

	for (nc = 0; getchar() != EOF; ++nc)
		;
	printf("%.0f\n", nc);
}

Пример 2:
#include <stdio.h>

main()
{
	long nc;

	nc = 0;
	while (getchar() != EOF)
		++nc;
	printf("%1d\n", nc);
	
}

Это почти из самого начала. Я уже дальше читаю и дальше получаются
все примеры и упражнения, а вот с этим - просто не знаю почему так. 
Это из раздела 1.5.2 (Подсчет символов).

а какой именно результат вы от них ждёте? :)

// wbr

klalafuda ★☆☆
()

Запусти программку.
Нажми какой-нибудь символ, например, 'u'
Нажми Enter
Набери еще какой-нибудь символ.
Нажми Enter.
Как надоест, нажми Ctrl-D
Будет вывод, нутром чую.

Uncle_Theodore ★★
()
Ответ на: комментарий от eXire

Как я понял nc подсчитывает каждый ввод символа и после каждого нажатия выводит инкрементированную nc.

Shalakhin
() автор топика
Ответ на: комментарий от Shalakhin

> Как я понял nc подсчитывает каждый ввод символа и после каждого нажатия выводит инкрементированную nc.

почему после *каждого* нажатия? лишь после финильного :)

// wbr

klalafuda ★☆☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.