![]() |
|
Модераторы: bsa |
![]()
|
|
| student80 |
|
|||
|
Абучю рускаму язаку ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 504 Регистрация: 18.4.2006 Репутация: нет Всего: 7 |
Вот такой код. на Си.
и на печать выдается количество введенных символов ровно в 2 раза больше, чем было введено. почему? |
|||
|
||||
| rrrFer |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 11.5.2008 Где: Красноярск Репутация: 0 Всего: 1 |
student80,
наверно пробелы и <enter> тоже считаются т.е. если ввести abcq<enter> то выведется 3- правильно возможно вам так надо: ?
комментировать надо? Это сообщение отредактировал(а) rrrFer - 24.6.2008, 18:04 |
|||
|
||||
| student80 |
|
|||
|
Абучю рускаму язаку ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 504 Регистрация: 18.4.2006 Репутация: нет Всего: 7 |
наверное ентер считается... в этом коде ch<11 и ch==32||ch==9 и ch==8&&c!=0 что означают? |
|||
|
||||
| rrrFer |
|
||||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 11.5.2008 Где: Красноярск Репутация: 0 Всего: 1 |
student80,
вы перепечатали и я сразу нашел ошибку не зря говорят что в чужом коде виднее надо так:
getchar возвращает значение в формате int - ASCII код символа Открываем таблицу ASCII кодов: 10 - символ новой строки, когда его встречаем -выходим из цикла:
9 - табуляция 32 - пробел в таком случае символ не учитываем, т.е. не изменяя значение счетчика, начинаем новую итерацию чикла:
8 - Backspace, если его нажали, значит удалили символ, а поэтому уменьшаем значение счетчика, однако, если уже стерли(или еще не ввели ни одного) символы, то уменьшать ничегь не надо, потому условие такое:
ну а в инном случае увеличиваем значение счетчика. ---------- впринципе можно было бы использовать функцию iswspace из <ctype.h>, которая проверяет является ли символ разделительным, но Т.к. она возвращает 1 если символ является: пробелом, табуляцией, СИМВОЛОМ НОВОЙ СТРАНИЦЫ, то отдельно пришлось бы делать проверку на <enter>, а посему подключение библиотеки врядли будет оправданным ---- PS В таблице ASCII кодов часто пишут например так код 10 символ lf так чтобы понять что это за символ такой глядим сюда например Это сообщение отредактировал(а) rrrFer - 24.6.2008, 19:31 |
||||||||
|
|||||||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |