C ++:获取用户通过cin输入的数据类型

时间:2017-03-01 08:14:00

标签: c++

我想防止用户在提示时输入错误的数据类型。

例如,假设:

int age 
cout << "What is your age?" << endl;  
cin >> age;

但是让我们说用户输入一个字符串或一个字符串,反正我会抓住它并重新提示用户再试一次吗?喜欢:

if (age != dataType(int) || age !=dataType(float)
cout << "Invalid entry. Please enter a number and try again."; 
编辑:我知道cin可以接受字符或字符串,但我需要检查它是否与int匹配,因为在这个例子中,用户可以通过输入来输入他或她的年龄&#34;二十3&#34;例如。

1 个答案:

答案 0 :(得分:1)

您需要通过手动解析字符串来自己完成。 operator>>对特定类型(如int)的重载是为了您的方便,以及您绝对确定输入属于该类型的情况。当然,您可以检查它是否失败,但是再一次,因为未能读取您期望的单个特定类型。

但是,一般情况下,cin适用于字符(&#34;字符输入&#34;),因此在基本级别上使用字符序列(即字符串)。

TL; DR:cinstring,然后自己解析字符串的内容以确定输入数据的实际类型。