从C中的标准输入读取未知数量的值

时间:2011-03-16 00:13:04

标签: c input

我需要读取这样的输入文件:

0.142857 0.714286 
0.642857 0.714286 
0.285714 0.500000
0.500000 0.500000 
0.785714 0.428571 
0.357143 0.357143 
0.714286 0.214286 
0.928571 0.071429

每条线对应于一个平面上的点,具有未知数量的点 输入来自标准输入..

任何想法?

3 个答案:

答案 0 :(得分:3)

scanf返回接收的参数数量。您可以进行测试以确保获得所要求的内容。

示例:

#include <stdio.h>

// ...

double f1, f2;

while(scanf("%lf %lf", &f1, &f2) == 2)
{
  // store f1 and f2 somewhere
}

答案 1 :(得分:1)

如果您完全信任输入,请使用scanf()

验证返回值以确保读取了一对,测试了EOF并且你已经完成了设置。

double x, y;
while (scanf("%lf%lf", &x, &y) == 2) {
  /* deal with (x, y) */
}
if (!feof(stdin)) /* input error */;

未经过测试


如果您不信任输入,请使用fgets()并“手动”解析每一行

答案 2 :(得分:0)

读取每一对并将其添加到链接列表,直到输入所有对?