gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 04:45:34 25 4
gpt4 key购买 nike

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

    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/

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