如何在没有确定输入量的情况下使用scanf

时间:2013-05-31 16:39:25

标签: c input scanf

我一直在寻找这个,但找不到答案。如果有人知道怎么做,我将不胜感激!

问题:我必须编写一个程序来存储一些数字,但我不知道会有多少数字!我该怎么办?

我想知道我是否可以使用时间来完成任务。我的意思是,如果已经过了5秒并且没有输入数据,那么就开始处理这些数字。它会工作,但我无法编码。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:2)

1)第一个解决方案:

您可以要求用户在开头输入所需元素的数量。

2)第二个解决方案:

保持扫描号码,直到您从用户那里获得EOF。并将输入数存储到链表或动态分配的数组中(使用realloc调整数组大小)

3)第三种解决方案

保持扫描号码超时。如果在超时期间没有输入,则程序将认为用户已完成输入编号,然后程序停止从stdin读取。输入数字可以存储到链表或动态数组中,如第二解决方案中所示。将select()scanf()一起使用,以便按照此answer

中的说明添加超时行为