【问题标题】:Reading multiline ints using scanf() in C form standard input在 C 格式标准输入中使用 scanf() 读取多行整数
【发布时间】:2018-05-11 03:38:51
【问题描述】:

5

3 2 3 1 2

输入看起来像这样

  1. 第一行是一个 int,它告诉我将在第二行输入中获得多少个 int(数字是

  2. 应将第二行整数输入 int 类型的数组。

【问题讨论】:

  • 请提供minimal reproducible example 以展示您迄今为止所做的尝试。
  • 我不知道该怎么做。
  • 这看起来像是您想要的程序的要求,而不是实际的特定编程问题。但我什至没有得到要求。将整数重新放入数组不能是程序应该做的唯一事情。除非它是一个纯粹的家庭作业,它只打算教你阅读和数组。如果你真的不知道如何去做,你应该学习你课程的教科书。如果这对查找教程没有帮助,如果太高级,请从 HelloWorld 开始。也许问你的老师也有帮助。如需帮助,请拨打tour

标签: c arrays input int multiline


【解决方案1】:

我认为你应该阅读第一行,在你知道第二行有多少条目之后,你可以这样做:

char template[32];

memset(template, 0x00, sizeof(template));

for(i = 0; i < num; i++)
    strcat(template, "%d");

然后你可以使用数组作为 sscanf 的模板:

int num[200];

sscanf(line2, template, &num[0], &num[1], &num[2],...);

您可以将所有数组放在 sscanf 中,如果值较少,因为字符串“line2”的结尾被视为文件结束条件。

【讨论】:

    猜你喜欢
    • 2018-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多