Пишу программу,где каждую секунду пользователь должен вводить определенный символ в консоль.Пользуюсь для этого функцией cin.get(ch).Проблема в том,что она принимает и Enter за символ тоже и кладет его в буфер входного потока,поэтому когда через секунду снова вызывается cin.get(ch) программа сама туда вводит символ '\n',не дожидаясь пользователя.Как с этим бороться?Конечно,можно перед следующим вызовом cin.get(ch) сначала вызвать "холостую" cin.get(),которая не записывает никакого значения в переменную,дабы очистить буфер потока,но это больше похоже на какой-то костыль...Да и этот трюк уже не сработает,если в буфере окажется вдруг больше одного символа.
И еще,есть какие нибудь функции,которые считывают по одному символу,не дожидаясь,пока пользователь нажмет Enter?Желательно из стандартных библиотек С++.
Как вариант
if (ch == '\r') сh = getch();
или использовать
cin.ignore();
Сборка персонального компьютера от Artline: умный выбор для современных пользователей