c - 在 C 形式标准输入中使用 scanf() 读取多行整数

标签 c arrays input int multiline

5

3 2 3 1 2

输入看起来像这样

  1. 第一行是一个整数,它告诉我将在第二行输入中获得多少个整数(数字为 <=200)。

  2. 第二行 int 应该输入到 int 类型的数组中。

最佳答案

我认为您应该阅读第一行,在知道第二行中有多少条目后,您可以执行如下操作:

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”的末尾被视为文件结束条件。

关于c - 在 C 形式标准输入中使用 scanf() 读取多行整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47518730/

相关文章:

arrays - MIPS addi 指令到数组基数

c - 如何更改char数组中的字符

c - 通过输入获取值并在运行时显示它们

c++ - 在 C++ 中从文件生成符号表

c - C 中的数组语法和指针

c - 为什么链接 `mingw32` 可以解决 SDL2 的这个编译问题?

arrays - C2 JIT 编译器何时触发 Java 循环谓词优化?

c - 为什么我会在限制小于 169 时出现段错误?

c - 为什么使用不相关的 printf 语句导致我的程序输出发生变化?

javascript - 将 javascript 变量作为 onsubmit href 链接传递给表单/输入字段