Если вы уверены, что вам нужно беспокоиться только об одном символе, вы можете просто использовать peek()
, чтобы взглянуть на следующий символ, фактически не потребляя его:
if(cin.peek() == 'q')
{
exit=false;
continue;
}
Если это более сложно, тогда вам сначала нужно прочитать строку, а затем проанализировать ее.
Не забывайте, что чтение поплавка уже включает его разбор, поэтому основным отличием является промежуточная копия в строку, что не должно быть слишком плохо, так как вы, вероятно, не копируете много символов. Кроме того, если вы будете повторно использовать один и тот же экземпляр строки каждый раз, его буфер будет также использоваться повторно.
О, вы также можете использовать небольшую удобную функцию std::stof
, чтобы разобрать строку в число с плавающей точкой.