![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| ressac |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 345 Регистрация: 25.11.2006 Репутация: нет Всего: 1 |
теперь надо поставить fflush(stdin) перед getchar'ом, так как scanf() тоже оставляет \n , и поэтому getchar просто проскакивает.
Добавлено через 3 минуты и 4 секунды 2Novojiloff когда-то у меня тоже были с этим проблемы , вот почитай темы : http://forum.vingrad.ru/topic-143812.html http://forum.vingrad.ru/topic-136223.html http://forum.vingrad.ru/topic-123572/kw-si...int-fflush.html |
|||
|
||||
| ressac |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 345 Регистрация: 25.11.2006 Репутация: нет Всего: 1 |
вот думал сидел и вот что ещё могу добавить,
пример
сценарий номер один первым что будет требовать эта программа это чтоб ты ей дал НОМЕР , если же ты просто нажмёшь на enter или пробел scanf() их просто пропустит и будет ждать номер или символ, если ты введешь цифру он прочитает но в буффере останется не прочитанным enter тут то его и считает getchar(); если ты вместо цифры введешь букву scanf(); прочитает её но не заполнит содержимое переменой i (вроде так) и затем это не прочитанная буква попадет в getchar(); и присвоется переменой С. сценарий номер два теперь поменяем местами getchar() co scanf() , первым при запуске будет идти getchar() а затем scanf(). getchar() словит любой символ и номер и даже если ты просто нажмешь энтер или пробел а потом энтер. в этом и заключается разнится между scanf() (только лишь в том случае когда ты пытаешься считать номер , а не букву , если ты читаешь scanf'ом букву то разницы между ними почти нет - почему? - читай в начале темы) и getchar(); ну а что касается gets() то читает всё что только есть в том буффере до новой линии и включая её саму поэтому за ним и не надо ничего чистить. вообщем если есть вопросы пиши |
|||
|
||||
| Novojiloff |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 31.10.2006 Репутация: нет Всего: нет |
Теперь правильно ли я тебя понял:
(Хотя написал очень доходчиво, за что безмерно благодарен Функция getchar() собирает все и вся А scanf(), что ей нужно оставляет себе, а остальное игнорирует, и все что ей было игнорировано, дособирает getchar(); Прога работает |
|||
|
||||
| ressac |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 345 Регистрация: 25.11.2006 Репутация: нет Всего: 1 |
да
|
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |