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

发布于 2024-10-23 11:48:15 字数 253 浏览 2 评论 0原文

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

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

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

有什么想法吗?

I need to read an input file like this:

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

Each line corresponds to a point on a plane, with an unknown number of points
input comes from standard input..

any ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

无人问我粥可暖 2024-10-30 11:48:15

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

例子:

#include <stdio.h>

// ...

double f1, f2;

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

scanf returns the number of parameters is receives. You can test to make sure you're getting what you're asking for.

Example:

#include <stdio.h>

// ...

double f1, f2;

while(scanf("%lf %lf", &f1, &f2) == 2)
{
  // store f1 and f2 somewhere
}
牛↙奶布丁 2024-10-30 11:48:15

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

验证返回值以确保读取了一对,测试 EOF 并且一切就绪。

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

未经测试


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

If you trust the input enough, use scanf().

Verify the return value to make sure a pair was read, test for EOF and you're all set.

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

NOT TESTED


If you don't trust the input, use fgets() and parse each line "by-hand"

篱下浅笙歌 2024-10-30 11:48:15

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

Read each pair and add it to a Linked List until you get all pairs in the input?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文