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

从C中的标准输入读取未知数量的值,c,input,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 每条线对应于平面上的一个点,点的数目未知 输入来自标准输入 有什么想法吗?读取每一对并将其添加到链接列表中,直到您获得输入中的所有对为止?读取每一对并将其添加到链接列表中,

我需要读取如下输入文件:

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
每条线对应于平面上的一个点,点的数目未知 输入来自标准输入


有什么想法吗?

读取每一对并将其添加到链接列表中,直到您获得输入中的所有对为止?

读取每一对并将其添加到链接列表中,直到您获得输入中的所有对为止?

scanf
返回收到的参数数量。你可以测试以确保你得到了你想要的

例如:

#include <stdio.h>

// ...

double f1, f2;

while(scanf("%lf %lf", &f1, &f2) == 2)
{
  // store f1 and f2 somewhere
}
#包括
// ...
双f1,f2;
而(扫描频率(“%lf%lf”、&f1和&f2)==2)
{
//将f1和f2存储在某个位置
}

scanf
返回接收的参数数量。你可以测试以确保你得到了你想要的

例如:

#include <stdio.h>

// ...

double f1, f2;

while(scanf("%lf %lf", &f1, &f2) == 2)
{
  // store f1 and f2 somewhere
}
#包括
// ...
双f1,f2;
而(扫描频率(“%lf%lf”、&f1和&f2)==2)
{
//将f1和f2存储在某个位置
}

如果您足够信任输入,请使用
scanf()

验证返回值,以确保已读取一对,测试EOF,并且已全部设置

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



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

验证返回值,以确保已读取一对,测试EOF,并且已全部设置

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



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

如果这是作业,请按此标记。如果这是作业,请按此标记。