Проблемы использования cin с double и char одновременно
double amount = 0;
char currency;
cin >> amount >> currency;
if (currency == 'e')
//..Do stuff..//
Имеется следующий фрагмент кода. При вводе с клавиатуры значения, вроде 123e, программа начинает работать неправильно. Мне удалось выяснить, что cin при этом переходит в состояние failed, сам же amount не изменяется. Полагаю, это связано с тем, что 123e интерпретируется как что-то в экспоненциальной записи.
P.S. при вводе 123 e (с пробелом), всё работает как надо. Есть ли способ заставить программу корректно слопать 123е? Так же, хотелось бы понять, почему cin вообще воспринимает e как экспоненту?