gpt4 book ai didi

c - 看看 C 中字符串是否转换为 double

转载 作者:行者123 更新时间:2023-12-02 21:44:01 26 4
gpt4 key购买 nike

我从 C 开始,我必须检查 main 函数的参数是否为 double。我正在尝试使用 strtod,但它给我带来了一些麻烦。所以我的主要看起来像这样:

    int main (int argc, char* argv[]){
if (!(strtod(argv[1], NULL)) /*trouble is with this line*/
exit(EX_USAGE);
else{
/*some code*/
}
return(0);
}

我已经使用strtod将argv[1]解析为double(没有问题),但问题是当argv[1]不是double时,所以它显然无法解析。有什么想法吗?

最佳答案

strtod() 有第二个参数,它是一个指向 char 指针的指针。如果它不是 NULL,它将向该指针写入停止转换的字符串中的地址,因为其余部分不是有效的 float 表示形式。

如果整个字符串转换正确,那么显然该指针将指向字符串的末尾。转换应该如下所示,并添加超出范围检查以进行良好的测量:

char *endptr;
double result;

errno = 0;
result = strtod(string, &endptr);
if (errno == ERANGE) {
/* value out of range */
}
if (*endptr != 0) {
/* incomplete conversion */
}

关于c - 看看 C 中字符串是否转换为 double,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19876095/

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