gpt4 book ai didi

C++ atof.如何检查输入错误?

转载 作者:太空宇宙 更新时间:2023-11-03 10:40:17 27 4
gpt4 key购买 nike

所以我使用 atof 将我的字符串转换为 double 。但我需要知道我是否输入错误(如 y564 等)。我怎样才能检查它?我需要正确的号码才能对其进行进一步操作。

double x = atof(s.c_str());

最佳答案

您可能想使用 std::stod :

[live]

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";
}

[编辑]

您可能会发现 here :

Return value

double value corresponding to the contents of str on success. If the converted value falls out of range of the return type, the return value is undefined. If no conversion can be performed, 0.0 is returned.

因此无法确定输入是否错误或包含 0

关于C++ atof.如何检查输入错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40846008/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com