| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Для новичков > scanf читает лишние символы из буфера клавы |
| Автор: Экскалупатор 14.9.2009, 16:45 | ||
есть такой цикл:
т.е. пользователь должен ввести y or n, тогда происходит заполнение массива(тут не описано) и выход из цикла, при вводе остальных символов цикл начинается заново, проблема в том что при вводе букв в клаве остаются символы конца строки(или возврата каретки, точно не знаю), и при следующем прохождении цикла scanf сначала читает этот символ, потом запускается цикл еще раз и только потом читается введенный ПРОШЛЫЙ раз символ. подскажите в чем лажа, почему так происходит и как это исправить? |
| Автор: zim22 14.9.2009, 16:52 | ||||
смывай в унитаз символы, которые остались в потоке C
C++
|
| Автор: Экскалупатор 14.9.2009, 16:56 |
| решение в лоб это конечно жестко и справедливо. но хотелось бы более конструктивных предложений, в книжках по Си во всех примерах все нормально(правда там нету примеров в которых в цикле что то вводиться), но мне кажется должно быть стандартное решение и для таких задач. но все равно спасибо. это уже выход. |
| Автор: zim22 14.9.2009, 17:03 | ||||
есть такой ещё способ:
*** подсмотрел на одном форуме (пробел ставим перед %с)
|
| Автор: Экскалупатор 14.9.2009, 19:26 |
| хм. мой моск отказывается понимать эту запись. почему пробел перед (" %c")? хочу понять что при этом происходит. объясните кто нить как это работает. |
| Автор: bsa 14.9.2009, 19:42 | ||
Экскалупатор, документацию прочитать религия не позволяет?
|
| Автор: Экскалупатор 14.9.2009, 20:05 |
| bsa, ))) я уже нашел ответ... http://www.codenet.ru/progr/cpp/spru/scanf.php и http://www.codenet.ru/progr/cpp/sprd/scanf.php |
| Автор: bsa 14.9.2009, 20:09 | ||
|