【发布时间】:2013-05-31 16:39:24
【问题描述】:
我已经为此搜索了一段时间,但找不到答案。如果有人知道该怎么做,我将不胜感激!
问题:我必须编写一个程序来存储一些数字,但我不知道会有多少数字!我该怎么办?
我想知道我是否可以利用时间来完成任务。我的意思是,如果 5 秒过去了并且没有数据输入,那么就开始处理这些数字。它会起作用,但我无法编写代码。有人可以帮忙吗?
【问题讨论】:
-
通常你会期望某种终结者,例如CR/LF 或文件结尾。你有什么理由不能依赖这个吗?
-
如果您使用 C++ 编写,您可能不应该使用
scanf()。如果您使用 C 语言编写,您可能最好使用fgets()或getline()然后sscanf()而不是直接使用scanf()。如果你使用scanf(),那么while (scanf("%d", &x) == 1) { ...save x into dynamically allocated array... }就可以了。 -
用户将“手动”输入数据,不能要求任何类型的终止符。顺便说一句,我正在写 C。
-
在程序中输入数据时,要么有一个“sentinel”值(例如非数字字符串)标记数字输入的结尾,要么键入 control-D(Unix -- Windows 上的 Control-Z) 让程序知道没有更多的输入,或者您从文件重定向输入并且您的程序在文件完成时获取 EOF。
-
感谢您的回答!难道没有办法在输入和另一个之间进行“计时”吗?