我需要读取这样的输入文件:
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
每条线对应于一个平面上的点,具有未知数量的点 输入来自标准输入..
任何想法?
答案 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)
读取每一对并将其添加到链接列表,直到输入所有对?