C++:获取用户通过cin输入的数据类型
C++: Obtaining the type of data entered by user via cin
我想防止用户在出现提示时输入错误的数据类型的可能性。
例如,假设:
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:cin
到string
中,然后自己解析字符串的内容以确定输入数据的实际类型。
相关文章:
- 我无法在Visual Studio代码中使用CIN输入答案,它说输入您的年龄,但它说只读文本编辑器如何解决这个问题?
- 分割错误 11:尝试使用 cin 输入 B[1] 时
- 当使用 std::CIN 输入结构时,它会出错
- C ++如何使用CIN输入这样的值?
- 使用 cin 输入数组值
- 当我输入一个字母时,cin 输入(输入是一个 int),而不是打印错误一次,它打印正确一次,然后在循环的其余部分打印 i
- 成功使用连续同时(cin >>输入)
- 连续 cin 输入在C++中的工作原理
- 无法获取哨兵值以读取多个 CIN 输入?
- 我如何使用CIN输入整数,每个数字都被逗号分隔
- C CIN输入要文件
- C++:获取用户通过cin输入的数据类型
- 无法读取字符串的长 cin 输入
- 如何将可编辑的预定义字符串写入 C++ 控制台应用程序中的 cin 输入运算符
- 循环获得CIN输入
- cin 输入可以有多大
- 如何拆分 CIN 输入
- 检查有效的 CIN 输入时出现问题
- 较长的获取线 CIN 输入的问题
- 检查 cin 输入流会生成一个整数