Как принять любые данные от пользователя и проанализировать их?
Если запрашиваю данные от пользователя (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. На что еще нужно обратить внимание?