gpt4 book ai didi

C: strtof 返回 0.000,怎么了?

转载 作者:太空宇宙 更新时间:2023-11-04 01:59:27 25 4
gpt4 key购买 nike

我的这部分 C 代码有些问题。除了返回 0.000 而不是 float 的函数“strtof”之外,一切都应该运行良好。

代码应该做什么:读一行,例如“一个12”如果第一个字符是“a”,则使用 strtof,它应该将指针设置为下一个空白并将两个空白之间的值保存到 x...(可能是错误的)

(包含所有库并定义了 MAX_LINE。)

感谢您的任何回答:)。

int run(void) {

char line[MAX_LINE];
fgets(line, sizeof(line), stdin);

char * ptr;
ptr = strtok (line," ");

if (strcmp(ptr, "a") == 0){
{
float x;

x = strtof(line, &ptr); /*HERE*/
printf("%f", x);
}
}

return 0;
}

最佳答案

你不读“a”后面的浮点值,我认为你需要这样做:

ptr = strtok(NULL," ");
x = strtof(ptr, NULL);

strtok 的下一次调用将读取“12”,strtof 会将其转换为 float 并放入 x 变量中。

关于C: strtof 返回 0.000,怎么了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29194753/

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