【发布时间】:2020-01-22 17:02:44
【问题描述】:
我的输入如下。
3 8 9 3
4 2 4 0 3
5 1 5 9 3 1
0
1 5
如您所见,每行的第一个数字表示该行中剩余的输入数。
如何通过 scanf 获取所有输入? 或者请让我知道一些新的东西。
【问题讨论】:
-
你为什么不使用循环?
-
读取一个整数。阅读更多。在尝试使用它设置的变量之前,不要忘记总是检查
scanf()的返回值以查看它是否成功。 -
请提供minimal reproducible example 以显示您已经知道和不知道的内容。请查看C book list。
-
scanf对于这项工作来说是一个非常糟糕的工具。一方面,它是基于流的,而不是基于行的。也就是说,它不关注行边界——就它而言,换行符只是另一个空白字符。因此,虽然您可以编写一些简单的代码来 (a) 读取行首的数字并 (b) 使用循环来读取更多的数字,但它会很高兴地读取两行输入10 1 2 3 4后跟 @ 987654327@ 作为 一个 组数字。 -
放大@JohnBollinger 所说的内容,如果你问如何通过一个 调用
scanf来阅读整行,你以某种方式告诉scanf多少%d的使用基于线上的第一个数字,我会说这是不可能的。