Вопрос начинающий.Почему не высвечиваются данные?
От: Pobeda http://cosmozo.narod.ru/
Дата: 23.01.02 19:07
Оценка:
Сделал программу. Работает, отлично. Смысл подсчитывание слов, букв, не считая пробелов и знаков пунктуации.
Правда не пойму почему , если в предпоследней строке не поставить в начале \n то данные не высвечиваются ?
printf("\nSrednee=%d bukv=%d slov=%d",bukv/slov,bukv,slov);
\\Заменить на это, не высвечиваются данные.
printf("Srednee=%d bukv=%d slov=%d",bukv/slov,bukv,slov);

Весь код:
#include <stdio.h>
#include <ctype.h>
#define NO 0
#define YES 1
int main()
{
 int ch,bukv=0,slov=0,wordflag=NO;
 while((ch=getchar()) != EOF)
 {
 if(ch=='\n')
 continue;
 if(ch!=' ' && !ispunct(ch) && wordflag==NO){
 slov++;
 wordflag=YES;
 }
 if(ispunct(ch) || ch==' ' && wordflag==YES)
 wordflag=NO;
 if (!ispunct(ch) && ch!=' ')
 bukv++;
 }
printf("\nSrednee=%d bukv=%d slov=%d",bukv/slov,bukv,slov);
return 0;
}



дас ист нихьт фантастиш, дас ист руссиш Ванюшка
Re: Вопрос начинающий.Почему не высвечиваются данные?
От: IT Россия linq2db.com
Дата: 23.01.02 19:27
Оценка:
Здравствуйте Pobeda, Вы писали:

P>Правда не пойму почему , если в предпоследней строке не поставить в начале \n то данные не высвечиваются ?


Они высвечиваются, только после наполнения буфера. По '\n' это буфер сбрасывается сразу.
Если нам не помогут, то мы тоже никого не пощадим.
Re[2]: Вопрос начинающий.Почему не высвечиваются данные?
От: Pobeda http://cosmozo.narod.ru/
Дата: 23.01.02 19:32
Оценка:
Здравствуйте IT, Вы писали:

IT>Они высвечиваются, только после наполнения буфера. По '\n' это буфер сбрасывается сразу.

А сколько буферу нужно, чтобы он показал эти значения без \n ?
дас ист нихьт фантастиш, дас ист руссиш Ванюшка
Re[3]: Вопрос начинающий.Почему не высвечиваются данные?
От: IT Россия linq2db.com
Дата: 23.01.02 19:58
Оценка:
Здравствуйте Pobeda, Вы писали:

IT>>Они высвечиваются, только после наполнения буфера. По '\n' это буфер сбрасывается сразу.

P>А сколько буферу нужно, чтобы он показал эти значения без \n ?

Чем меньше, тем лучше. Какой буфер у printf — кто его знает, может байт 500. Можно поискать соответствующий функции flush, но это тоже может не помочь если консоль сама занимается кешированием.
Если нам не помогут, то мы тоже никого не пощадим.
Re[4]: Вопрос начинающий.Почему не высвечиваются данные?
От: Pobeda http://cosmozo.narod.ru/
Дата: 23.01.02 20:02
Оценка:
Здравствуйте IT, Вы писали:

IT>Чем меньше, тем лучше. Какой буфер у printf — кто его знает, может байт 500. Можно поискать соответствующий функции flush, но это тоже может не помочь если консоль сама занимается кешированием.


То есть, получается, что использовать \n для сброса буфера, необходимо в большинстве случаев ?
дас ист нихьт фантастиш, дас ист руссиш Ванюшка
Re[5]: Вопрос начинающий.Почему не высвечиваются данные?
От: IT Россия linq2db.com
Дата: 23.01.02 21:10
Оценка: 3 (1)
Здравствуйте Pobeda, Вы писали:

P>То есть, получается, что использовать \n для сброса буфера, необходимо в большинстве случаев ?


Наверное как-то можно и по-другому, но я не знаю как.
Если нам не помогут, то мы тоже никого не пощадим.
Re[6]: Вопрос начинающий.Почему не высвечиваются данные?
От: Pobeda http://cosmozo.narod.ru/
Дата: 23.01.02 21:36
Оценка:
Здравствуйте IT, Вы писали:

Ок. Спасибо.
дас ист нихьт фантастиш, дас ист руссиш Ванюшка
Re: Вопрос начинающий.Почему не высвечиваются данные?
От: Krom Россия  
Дата: 24.01.02 04:45
Оценка:
Здравствуйте Pobeda, Вы писали:

P>Сделал программу. Работает, отлично. Смысл подсчитывание слов, букв, не считая пробелов и знаков пунктуации.

P>Правда не пойму почему , если в предпоследней строке не поставить в начале \n то данные не высвечиваются ?
P>
P>printf("\nSrednee=%d bukv=%d slov=%d",bukv/slov,bukv,slov);
P>\\Заменить на это, не высвечиваются данные.
P>printf("Srednee=%d bukv=%d slov=%d",bukv/slov,bukv,slov);
P>


У меня выводится все как положенно. Использую MSVC 6.0 + sp5 на WinXP.

PS. А как задаете признак конца ввода для выхода из цикла?
Best regards
Krom
Re[2]: Вопрос начинающий.Почему не высвечиваются данные?
От: Pobeda http://cosmozo.narod.ru/
Дата: 24.01.02 06:32
Оценка:
Здравствуйте Krom, Вы писали:
K> У меня выводится все как положенно. Использую MSVC 6.0 + sp5 на WinXP.
K> PS. А как задаете признак конца ввода для выхода из цикла?
У меня Borland 5.02
Конец ввода задаю ctrl+z.
дас ист нихьт фантастиш, дас ист руссиш Ванюшка
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.