подсчет символов
Пользователи, просматривающие топик: 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]
|
|
|
подсчет символов - 2005-04-08 16:14:18
|
|
|
C#
Сообщений: 10
Оценки: 0
Присоединился: 2005-03-04 23:22:28
|
1)Ты подсчитываешь не количество символов, а количество раз ввода 2)ИМХО этот цикл бесконечен[sm=1.gif]
|
|
|
подсчет символов - 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;lt;stdio.h&amp;gt;<BR>main()<BR>{<BR> long nc;<BR> nc=0;<BR> while(getchar()!=EOF)<BR> ++nc;<BR> printf(&amp;quot;%ld<BR>&amp;quot;,nc);<BR>}<BR>По идее должен выводить количество символов набранных на клаве , а выводит сами символы…<BR>Что не так?[sm=sm128.gif] —————-
Цикл бесконечен, потому что условие что введенный символ будет равен EOF практически не достижимо… лутше сравнивай на превод строки.. а настчет того что он выводит введенный симовол, посмотри в отладчике что не так и все…
|
|
|
подсчет символов - 2005-04-08 16:54:24
|
|
|
jEnizix
Сообщений: 1797
Оценки: 0
Присоединился: 2004-12-30 11:03:50
|
Хм… Ну а вот это не выход?:
<BR>#include <iostream.h><BR>#include <string.h><BR><BR>int main()<BR>{<BR> char str[1024];<BR> cin.getline(str,1024);<BR> cout<<strlen(str);<BR> return 0;<BR>}<BR>
|
|
|
подсчет символов - 2005-04-08 17:09:23
|
|
|
jEnizix
Сообщений: 1797
Оценки: 0
Присоединился: 2004-12-30 11:03:50
|
вот так вот еще можно: <BR>#include <stdio.h><BR>#include <conio.h><BR><BR>int main()<BR>{<BR> long nc=0;<BR><BR> while(getch()!='\n') // хм… выходит из цикла только при CTRL-Enter, \r\n не помогает… =(<BR> nc++;<BR><BR> printf("%ld\n",nc);<BR> printf("press any key…\n");<BR> getch();<BR> return 0; // по стандарту main должна возвращать 0 при успешном завершении<BR>}<BR>
ЗЫ. а при getchar символы полюбому будут печататься!!!
|
|
|
подсчет символов - 2005-04-08 18:51:24
|
|
|
Edelweiss
Сообщений: 174
Оценки: 0
Присоединился: 2005-01-11 22:14:41
|
На самом деле, реализация зависит оттого, каким образом заканчивается ввод. Напиши подробнее.
|
|
|
подсчет символов - 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]
|
|
|
подсчет символов - 2005-04-08 20:11:30
|
|
|
jEnizix
Сообщений: 1797
Оценки: 0
Присоединился: 2004-12-30 11:03:50
|
Хм… ну а тебе вроде не надо было чтоб символы показовались?
|
|
|
подсчет символов - 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]
|
|
|
подсчет символов - 2005-04-08 23:08:40
|
|
|
Jeniziх
Сообщений: 33
Оценки: 0
Присоединился: 2005-04-08 23:05: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]
|
|
|
подсчет символов - 2005-04-09 02:10:47
|
|
|
rgo
Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
|
Символы выводятся, потому что терминал в echo режиме работает, то есть введённые символы отображаются на экране. . А насчёт бесконечности цикла, не знаю что есть getchar, но если пользовать fgetc (stdin) то ни фига не бесконечен, ровно до EOF.(это я про первый пример)
|
|
|
подсчет символов - 2005-08-05 18:36:46
|
|
|
EmpoC
Сообщений: 31
Оценки: 0
Присоединился: 2004-04-07 23:39:53
|
Чтоб сделать EOF, надо набрать Ctrl+D
|
|
|
|
|