Как принять любые данные от пользователя и проанализировать их?

Если запрашиваю данные от пользователя (std::cin), то данные преобразовываются к определенному типу. Пробовал установить тип auto для входных данных, но компилятор такое не принимает. Как получить любые данные от пользователя, самому определить их тип и, в зависимости от типа данных, выдать сообщение о несоответствии требованиям для этих данных?

#include <iostream>

using namespace std;

int main(void)
{
    cout << "Enter an integer: ";
    int users_num;
    cin >> users_num;
    cout << users_num;
    return 0;
}

Получаю следующий вывод если ввожу строку:

Enter an integer: werwer
0

Или такой, если ввожу дробное:

Enter an integer: 3245.2345
3245

Правильно ли будет принимать ввод как строку (std::string) и разбирать ее с помощью регулярок? Я заметил, что 45.45 в строке преобразовывается в 45,45. На что еще нужно обратить внимание?


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