【问题标题】:C - string to float [duplicate]C - 要浮动的字符串[重复]
【发布时间】:2019-04-20 09:39:42
【问题描述】:

我想将多个十进制数字的字符串转换为浮点数。就我而言,当程序启动时,要求用户写一些数字,并将其保存到数组(付款)中,但之后我需要使用这些数字。正确的方法是什么?

编辑:主要问题是我不知道如何读取这些数字的序列,例如插入付款:“1 2 3”,我希望我的结果是 1 2 3,而我的实际结果只是 1。

这是我的代码。

 int main(){

    char payment[100];
    printf("Insert money for payment: ");
    fgets(payment,100,stdin);
    printf("Insert money for payment: %s\n", payment);


    return 0;
}

提前谢谢你

【问题讨论】:

  • fgets(); 是很好的第一步。研究sscanf(),如sscanf(..., "%f %f %f", ...)。下次还要解释一下,在这里,为什么输入“1 2 3”对于payment有意义?

标签: c string numbers


【解决方案1】:

您可以使用sscanf 来执行此操作。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main () {
    float paymentf;
    char payment[100];
    printf("Insert money for payment: ");
    fgets(payment,100,stdin);
    printf("Insert money for payment: %s\n", payment);
    sscanf( payment, "%f", &paymentf );
    printf("Payment in float = %f\n", paymentf );
    return(0);
}

【讨论】:

  • 如果我想写更多的数字?喜欢:(插入付款:1 2 3 10)然后浮动“paymentf”只是第一个数字,而不是全部。我不知道如何阅读和转换更多的数字
  • 因为稍后我需要检查数字是否只是允许的数字,我必须将它们一起计算,但这很容易,我只是被这个问题困住了......
猜你喜欢
  • 2010-12-23
  • 1970-01-01
  • 1970-01-01
  • 2012-12-19
  • 1970-01-01
  • 2014-08-07
  • 2018-06-04
  • 1970-01-01
  • 2017-09-30
相关资源
最近更新 更多