用C ++测试数据类型

时间:2015-07-21 16:25:50

标签: c++

请问,我如何在C ++中测试数据类型,例如,如果我希望用户输入,我想检查用户是否输入int,double,char或boolean。

1 个答案:

答案 0 :(得分:0)

您将输入读入字符串(std::getline()),然后尝试解析它。 strtod()检查它是否解析为double(通过结束指针)。如果失败,请strtol()检查它是否作为int解析。我假设你的意思是对于bool来说是“真”/“假”,所以你要对那些做一个字符串==。如果所有失败,请将其用作逐字字符串。

当然,所有这些都非常脆弱。用户可以输入十进制逗号或小数点。他可能会在“真实”之后添加一个空格。所有这些......

如果您正在寻找真正的解析,Boost.Spirit将是寻找的地方,但这对于生产级解析器来说非常复杂,所以我怀疑这就是你的意思正在寻找。