Pau*_* R. 1 c++ string double atof
所以我使用atof将我的字符串转换为double.但是我需要知道输入是否错误(如y564等).我怎么检查呢?我需要正确的号码才能进一步采取行动.
double x = atof(s.c_str());
Run Code Online (Sandbox Code Playgroud)
您可能想要使用std :: stod:
bool parse_double(std::string in, double& res) {
try {
size_t read= 0;
res = std::stod(in, &read);
if (in.size() != read)
return false;
} catch (std::invalid_argument) {
return false;
}
return true;
}
int main()
{
double d;
bool b = parse_double("123z", d);
if (b)
std::cout << d;
else
std::cout << "Wrong input";
}
Run Code Online (Sandbox Code Playgroud)
[编辑]
你可以在这里找到:
返回值
成功时str的内容对应的double值.如果转换后的值超出返回类型的范围,则返回值未定义.如果无法执行转换,则返回0.0.
这样就无法确定输入是错还是包含0.
| 归档时间: |
|
| 查看次数: |
1484 次 |
| 最近记录: |