【发布时间】:2017-08-29 14:06:26
【问题描述】:
我想知道的是,如果我要求用户输入一些东西,如果输入是整数、字符串或浮点值,我将如何输出。我想要一些方法来检查 C++14 中输入的数据类型。
例如。
如果输入是“Hello world”
输出应该是:“输入是字符串”
如果输入是“134”
输出应该是:“输入是整数”
如果输入是“133.23”
输出应该是:“输入是浮点数”
【问题讨论】:
-
例如,
1e1是什么 - 整数、浮点数还是字符串? -
您可以尝试转换它。本质上,这意味着以字符串的形式读取一行(使用
getline),然后例如把它放在istringstream中并尝试从中读取任何你想要的内容。如果失败,则输入不是那样。 -
默认情况下,cin 会接受用户的 String 输入。它是否只包含数字字符,或者最后是 float 的 f,可以通过遍历 的 chars 来检查String 并检查每个 char
-
你能给我看一个不是字符串的输入示例吗?
-
bool is_double(const std::string& s) { std::istringstream iss(s);双 d;返回 iss >> d >> std::ws && iss.eof(); }