Sou*_*a B 4 c++ double user-input cin console-application
在我的程序中,我将斜率值作为用户的输入。代码片段如下所示:
double m;
std::cout << "Enter slope value:";
std::cin >> m;
Run Code Online (Sandbox Code Playgroud)
但目前我无法给出“无穷大”作为斜率值。如果输入“inf”,m 将存储 0,可能是由于解析错误。如果我输入非常大的数字,例如 1e1000,m 将存储 DBL_MAX,即 1.79769e+308。
那么我应该在控制台中输入什么,以便 m 包含“无穷大”的值?(垂直线的斜率)。
那么我应该在控制台中输入什么,以便 m 包含“无穷大”的值?(垂直线的斜率)。
std::istream::operator>>(double&)我认为目前不支持这一点。
最终它将用于将std::strtod提取的字符串转换为 adouble并且std::strtod应该接受INFand INFINITY,忽略大小写并带有可选的+/-前缀。
然而,目前字符的提取是通过std::num_get::do_get仅认为字符0123456789abcdefpxABCDEFPX+-有效的方式进行的。
在LWG 2381>>中,它解决了和之间的一些不一致strtod,还提到无穷大和 NaN 不在该决议的范围内。
因此,您需要读入字符串并手动调用std::strtod// 。std::stodstd::from_chars