请问,我如何在C ++中测试数据类型,例如,如果我希望用户输入,我想检查用户是否输入int,double,char或boolean。
答案 0 :(得分:0)
您将输入读入字符串(std::getline()
),然后尝试解析它。 strtod()
检查它是否解析为double(通过结束指针)。如果失败,请strtol()
检查它是否作为int解析。我假设你的意思是对于bool来说是“真”/“假”,所以你要对那些做一个字符串==
。如果所有失败,请将其用作逐字字符串。
当然,所有这些都非常脆弱。用户可以输入十进制逗号或小数点。他可能会在“真实”之后添加一个空格。所有这些......
如果您正在寻找真正的解析,Boost.Spirit将是寻找的地方,但这对于生产级解析器来说非常复杂,所以我怀疑这就是你的意思正在寻找。