Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

подсчет символов

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Веб-программинг] >> подсчет символов
Имя
Сообщение << Старые топики   Новые топики >>
подсчет символов - 2005-04-08 15:21:54   
4free

Сообщений: 208
Оценки: 0
Присоединился: 2005-03-15 23:04:51
Подскажите.
Имеется следующий листинг:
#include<stdio.h>
main()
{
long nc;
nc=0;
while(getchar()!=EOF)
++nc;
printf("%ld\n",nc);
}
По идее должен выводить количество символов набранных на клаве , а выводит сами символы…
Что не так?[sm=9.gif]
Post #: 1
подсчет символов - 2005-04-08 16:14:18   
C#

Сообщений: 10
Оценки: 0
Присоединился: 2005-03-04 23:22:28
1)Ты подсчитываешь не количество символов, а количество раз ввода
2)ИМХО этот цикл бесконечен[sm=1.gif]
Post #: 2
подсчет символов - 2005-04-08 16:40:20   
lolik

Сообщений: 152
Оценки: 0
Присоединился: 2005-03-19 19:25:42
[p]
quote:

—————-<BR>Цитата: Дата:08.04.2005 15:21:54, Автор: 4free ::
Подскажите.<BR>Имеется следующий листинг:<BR>#include&amp;amp;lt;stdio.h&amp;amp;gt;<BR>main()<BR>{<BR> long nc;<BR> nc=0;<BR> while(getchar()!=EOF)<BR> ++nc;<BR> printf(&amp;amp;quot;%ld<BR>&amp;amp;quot;,nc);<BR>}<BR>По идее должен выводить количество символов набранных на клаве , а выводит сами символы…<BR>Что не так?[sm=sm128.gif]
—————-


Цикл бесконечен, потому что условие что введенный символ будет равен EOF практически не достижимо… лутше сравнивай на превод строки..
а настчет того что он выводит введенный симовол, посмотри в отладчике что не так и все…
Post #: 3
подсчет символов - 2005-04-08 16:54:24   
jEnizix

Сообщений: 1797
Оценки: 0
Присоединился: 2004-12-30 11:03:50
Хм… Ну а вот это не выход?:

<BR>#include &lt;iostream.h&gt;<BR>#include &lt;string.h&gt;<BR><BR>int main()<BR>{<BR> char str[1024];<BR> cin.getline(str,1024);<BR> cout&lt;&lt;strlen(str);<BR> return 0;<BR>}<BR>
Post #: 4
подсчет символов - 2005-04-08 17:09:23   
jEnizix

Сообщений: 1797
Оценки: 0
Присоединился: 2004-12-30 11:03:50
вот так вот еще можно:
<BR>#include &lt;stdio.h&gt;<BR>#include &lt;conio.h&gt;<BR><BR>int main()<BR>{<BR> long nc=0;<BR><BR> while(getch()!='\n') // хм… выходит из цикла только при CTRL-Enter, \r\n не помогает… =(<BR> nc++;<BR><BR> printf(&quot;%ld\n&quot;,nc);<BR> printf(&quot;press any key…\n&quot;);<BR> getch();<BR> return 0; // по стандарту main должна возвращать 0 при успешном завершении<BR>}<BR>

ЗЫ. а при getchar символы полюбому будут печататься!!!
Post #: 5
подсчет символов - 2005-04-08 18:51:24   
Edelweiss

Сообщений: 174
Оценки: 0
Присоединился: 2005-01-11 22:14:41
На самом деле, реализация зависит оттого, каким образом заканчивается ввод.
Напиши подробнее.
Post #: 6
подсчет символов - 2005-04-08 19:35:14   
4free

Сообщений: 208
Оценки: 0
Присоединился: 2005-03-15 23:04:51
#include<stdio.h>
main()
{
long nc;
nc=0;
while(getchar()!='\n')
nc++;
printf("%ld\n",nc);
getchar();
return 0;
}
Вот так заработало.Набирается текст,затем Enter - выводит кол-во символов…[sm=go139.gif]
Post #: 7
подсчет символов - 2005-04-08 20:11:30   
jEnizix

Сообщений: 1797
Оценки: 0
Присоединился: 2004-12-30 11:03:50
Хм… ну а тебе вроде не надо было чтоб символы показовались?
Post #: 8
подсчет символов - 2005-04-08 20:49:26   
4free

Сообщений: 208
Оценки: 0
Присоединился: 2005-03-15 23:04:51
quote:

—————-<BR>Цитата: Дата:08.04.2005 20:11:30, Автор:Jenizix ::
Хм… ну а тебе вроде не надо было чтоб символы показовались?
—————-




В принципе не хотелось…
Хотелось еще сквозной поток - как только вводится символ счетчик увеличивается.[sm=sm128.gif]
Post #: 9
подсчет символов - 2005-04-08 23:08:40   
Jeniziх

Сообщений: 33
Оценки: 0
Присоединился: 2005-04-08 23:05:10
ну тк мой последний пример подходит ?
Post #: 10
подсчет символов - 2005-04-08 23:37:07   
4free

Сообщений: 208
Оценки: 0
Присоединился: 2005-03-15 23:04:51
quote:

—————-<BR>Цитата: Дата:08.04.2005 23:08:40, Автор:Jeniziх ::
ну тк мой последний пример подходит ?
—————-




Что-то я действительно взял из твоего примера.
Он более "вкусный",что-ли…
И вроде всего - вместо "…!=EOF) подставил !='\n') , и префиксную форму приращения "nc" поменял на постфиксную…
C/C++ - рулит…[sm=go139.gif]
Post #: 11
подсчет символов - 2005-04-09 02:10:47   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
Символы выводятся, потому что терминал в echo режиме работает, то есть введённые символы отображаются на экране. . А насчёт бесконечности цикла, не знаю что есть getchar, но если пользовать fgetc (stdin) то ни фига не бесконечен, ровно до EOF.(это я про первый пример)
Post #: 12
подсчет символов - 2005-08-05 18:36:46   
EmpoC

Сообщений: 31
Оценки: 0
Присоединился: 2004-04-07 23:39:53
Чтоб сделать EOF, надо набрать Ctrl+D
Post #: 13
Страниц:  [1]
Все форумы >> [Веб-программинг] >> подсчет символов







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.