| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Для новичков > Зацыкливание вместо выхода из цыкла. |
| Автор: Killer_13 22.4.2010, 19:51 | ||
| Простой у меня вопрос. Вот небольшой примерчик. По нажатию на клавишу "х", - должен быть выход из программы, а почему-то получается зацыклывание. Посмотрел в книге - у меня код 1 в 1 сходится, что я начудил? Спасибо!
|
| Автор: jonie 22.4.2010, 20:21 |
| потому что в x у вас будет перевод каретки (он не попадает в cin>>, а остается в буфере, который и считывает cin.get). Чтобы поправить ситуацию можно сбросить кеш используя cin.sync(); либо std::cin.ignore( std::numeric_limits<std::streamsize>::max(), '\n' ); либо flushall(); передcin.get(). Знающие люди подскажут чем способы отличаются... я использую sync ... |
| Автор: Killer_13 22.4.2010, 20:35 |
| Хмм, так как поправить в моем случае? Если вы заметили cin.sync(); у меня стоит после cin.get пробовал ставить и перед, никаких изменений, поставил перед cin.get flushall(); Никаких изменений. Я приблизительно понимаю о чем вы, читал о этом. Но чтоб работало почему то исправить не получается. Спасибо. |
| Автор: toxx 22.4.2010, 21:18 | ||
А если так попробовать? |
| Автор: Killer_13 22.4.2010, 21:28 |
| И так не работает? Странно, ведь в книге такой пример, - почему он не работает? :(:(:( |
| Автор: toxx 22.4.2010, 21:30 |
| Killer_13 Странно у меня вышел=)я правильно вводил? http://www.valar.ru/gallery/0410/312.jpg |
| Автор: Killer_13 22.4.2010, 21:38 |
| Да, но программа после первого цыкла начинает работать неправильно, - тогда нужно вводить 3 числа! Если первый раз, работатет правильно, - если во второй раз, уже нужно вводить 3 числа. Так быить не должно... |
| Автор: toxx 23.4.2010, 13:03 | ||
| Killer_13 попробуйте ещё так
|
| Автор: Killer_13 23.4.2010, 13:25 |
| Там путаница какая то получается, - после запроса ввести еще раз вводит и выводит, но в цыкл наверх не идет. Если нажать х, тогда прокручивает цыкл еще раз, с какой то радости, - нужно разобраться... |