从命令行获取数组输入

时间:2014-10-29 05:24:20

标签: c

我正在使用命令行来输入由空格分隔的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"

编辑:我需要使用浮点数而不是整数。

2 个答案:

答案 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;
}