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

C++: Obtaining the type of data entered by user via cin

本文关键字:cin 输入 数据类型 获取 用户 C++      更新时间:2023-10-16

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

例如,假设:

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匹配,因为在这个例子中,用户可以通过输入"二十三"来输入他或她的年龄。

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

但是,一般来说,cin处理字符("字符输入"),因此在基本级别上,您可以使用字符序列(也称为字符串)进行操作。

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