我正在使用命令行来输入由空格分隔的3个浮点数。例如"1.234 5.678 9.012"
。
我目前正在使用:
float xyz[3] = {0};
scanf("%f", xyz);
print(%f %f %f, xyz[0], xyz[1], xyz[2]);
然而,输出是" 1.234000 0.000000 0.000000
"。
预期输出为" 1.234000 5.678000 9.012000
"
编辑:我需要使用浮点数而不是整数。
答案 0 :(得分:2)
如果您使用命令行参数,只需尝试
#include<stdio.h>
#include<stdlib.h>
main(int c, char **v)
{
float xyz[3]={0};
xyz[0]=atof(v[1]);
xyz[1]=atof(v[2]);
xyz[2]=atof(v[3]);
printf("%f %f %f\n",xyz[0],xyz[1],xyz[2]);
}
答案 1 :(得分:2)
也许这个
#include <stdio.h>
int main(int argc, char** argv)
{
float vals[3];
printf("input 3 float values: ");
int res = scanf("%f %f %f", &vals[0], &vals[1], &vals[2]);
if(res == 3)
{
printf("read 3 floats %f %f %f\n", vals[0], vals[1], vals[2]);
} else
{
printf("failed to read 3 float values\n");
}
return 0;
}