Проблемы использования 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 как экспоненту?


Ответы (0 шт):