我试图读入一行浮点值,如
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