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