очистить входной поток stdin от лишних символов
Primary tabs
Forums:
Очистить входной поток stdin от лишних си Можно , просто чистя его каждый раз, когда мы хотите считать символ вызывая после
getchar()
конструкцию
while (getchar() != '\n');
- соответственно, если пользователь введёт более оного символа - то всё лишнее вместе с символом перевода строки будет убрано из потока ввода
- такой способ соответствует стандартам и вполне переносим с одной платформы на другую.
_____________________________________________
Источники(читать подробнее)=
Ключевые слова и фразы(для поиска)=
как очистить stdin
- Log in to post comments
- 11755 reads
vedro-compota
Sat, 10/22/2011 - 14:08
Permalink
чтобы не вызывать каждый раз
А что если мы не знаем о состоянии входного потока и нам требуется его очистить в случае, если он заполнен . пример - есть функция меню =
чтобы получить корректные данные от пользователя входной поток должен быть очищен,
но возникает проблема - что если входной поток изначально был пуст -
то есть вызывающая функция имела вид =
если это так то наша функция mainmenu() остановит выполнение программы ожидая нажатия enter - так вот возникает вопрос - как сделать работу mainmenu() независимой от контекста вызывающей функции.
Примечание: можно было бы просто использовать
но эта функция вроде как обладает нестандартным поведением - то есть её реализация разнится в разных средах и компиляторах......
_____________
матфак вгу и остальная классика =)
vedro-compota
Tue, 12/06/2011 - 20:35
Permalink
int inputcl(void)
_____________
матфак вгу и остальная классика =)