【发布时间】:2020-03-09 12:57:30
【问题描述】:
我正在学习 C 并且我正在尝试从字符串中提取一个浮点值,它必须是这种格式。但是当我在我的字符串中输入一个数字时,它只返回一个 int,有人可以帮助我吗?谢谢
#include <stdio.h>
float daNum(void);
int main (void)
{
float value = 0;
printf("please enter a value:");
value = daNum();
printf("your value is:%.3f \n", value);
return 0;
}
float daNum(void)
{
char store[121] = {0};
float numba = 0;
int const kInvalInput = -5;
fgets (store, 121, stdin);
if( sscanf (store, "%f", &numba) != 1)
{
numba = kInvalInput;
}
return numba;
}
【问题讨论】:
-
为我工作:ideone.com/i2yCbG
-
您输入了什么值?你是用点还是逗号作为小数点?
-
使用点很好,但这只是我所问的一部分。您输入了什么(以及您打印了什么)?
-
@user3121023 它看起来就是我的问题的答案,但我没有在课堂上看到指针,我真的不明白(我试过)这是解决它的唯一方法吗?欢迎您的评论
-
鉴于您使用的是
float而不是double,1000.11108结果与预期的一样好。它不是整数值。所以我不清楚问题是什么。将“我输入的内容和得到的内容”信息编辑到问题中也是一个好主意。