【问题标题】:how can i get a float value from this string using?? C programing [duplicate]我怎样才能从这个字符串中得到一个浮点值? C编程[重复]
【发布时间】: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 而不是double1000.11108 结果与预期的一样好。它不是整数值。所以我不清楚问题是什么。将“我输入的内容和得到的内容”信息编辑到问题中也是一个好主意。

标签: c string function extract


【解决方案1】:

使用float strtof (const char* str, char** endptr);

Full documentation

【讨论】:

    猜你喜欢
    • 2022-10-13
    • 2019-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-06
    • 1970-01-01
    • 2015-12-02
    • 2016-10-16
    相关资源
    最近更新 更多