如何在一行上读入多个浮点数,然后将它们添加到数组中?

我试图读入一行浮点值,如

1.1-100.0 2.3

我需要将它们存储在一个数组中。
我正在使用fgets()方法将输入转换为字符串。我是否可以使用这个字符串用值填充浮点数组?还是有更好的方法

#包括<标准h>
int main(){
字符输入[500];
浮动值[50];
fgets(输入,500,标准输入);
//现在输入有一个包含所有值的字符串
//值数组需要用这些值填充
}

您可以对输入的字符串应用sscanf

这是一个简化的演示程序

#包括<标准h>
内部主(空)
{
字符输入[20];
浮动值[3];
fgets(输入,sizeof(输入),标准输入);
尺寸n=0;
char*p=输入;
对于(int pos=0;n<3&sscanf(p,"%f%n",值+n,&pos)==1;p+=pos)
{
++n;
}
对于(大小i=0;i<n;i++)
{
printf(“%.1f”,值[i]);
}
putchar('\n');
返回0;
}

如果输入的字符串是

1.1-100.0 2.3

然后数组值的输出为

1.1-100.0 2.3

发表评论