- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
delay(msec)
和sleep(sec)
等函数将程序延迟指定的时间,但仅在控制传递给它之后。例如,在 delay()
之前使用 printf()
函数,首先执行 printf()
,然后执行 delay()
。但是,如果我们使用 scanf()
、getchar()
和其他输入处理函数,控制不会传递给 delay()
直到我输入。对吧?
有没有办法执行scanf()
指定的时间,然后在没有输入的情况下在时间完成后退出?是否有任何功能可以在指定的时间段内执行 scanf()
或任何其他输入功能?
最佳答案
您是正确的,因为您的程序只有一个线程,所以在 scanf( )
已经结束。
我想你要做的是读取一个字符串,等待一个时间限制。解决方案是构建要单独扫描的字符串(同时检查时间限制是否已过期),然后将字符串传递给 sscanf()
(注意额外的 s
) 供以后处理。
第一部分是困难的部分。执行此操作的最简单方法可能是在 STDIN
(即输入流)上使用循环和 select()
,并设置一个小超时。每当一个字符到达时,将其添加到字符串中。您将需要手动处理(例如)删除。使用 gettimeofday
读取时间,如果此时间与开始时间之间的差异超过给定的超时时间,则在超时的基础上退出。
另一种方法是使用带有 SIGALRM
的警报处理程序。您可能(或可能不会)发现这会令人满意地终止 fgets()
。您将需要一个没有SA_RESTART
的sigaction
。有顺风,那应该行得通。我说“顺风”是因为那里似乎有错误的 c 库版本,当收到 EINTR
时无条件重试。参见示例:http://alumnus.caltech.edu/~dank/sigtest.c
当然这里可能有图书馆可以帮助你。 readline
没有内置超时。 editline
可能。
关于c - 如何使用输入功能的时间延迟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21663972/
我在使用以下代码时遇到问题。 //Send Creation email ListServDAO.sendCreateEmail(orgId, full, request.getSession().g
我想知道如何在一段时间后调用函数。我试过 time.sleep() 但这会停止整个脚本。我希望脚本继续运行,但在 ???secs 后调用一个函数并同时运行另一个脚本 最佳答案 看看threading.
我有一个在 .NET 4.0 中使用的自定义控件(继承自 TextBox)。 我需要做的是在用户完成输入后执行一些代码,例如他停止打字后一秒钟。 为了提高效率,我不能在每次 Text 更改时都执行此代
我目前正在开发一个应用程序,我想实现一个时间延迟。我不想使用 System.Threading.Thread.Sleep(x);当我读到这篇文章时,线程停止了(UI 卡住) 我目前写的代码是: pub
我需要一些关于我调用 onKeyUp 的 JavaScript 函数的帮助,它是一个 Ajax 函数,但每次我写任何字符时它都会调用该函数并且它会降低页面性能并且它每次都会检查,它是一个用户检查数据库
我想在 PyDev (Eclipse) python 2.75 中创建一个图形窗口。 我做了一些事情,但我想做一个“入口”“眨眼”。它测试用户输入。如果它是一个整数,它应该闪烁绿色一秒钟,然后变成白色
再次嗨,网络大师:)现在,我有一个新的愚蠢问题,我请求原谅。我到处阅读有关此解决方案的信息,但没有找到适合我的解决方案。 我有: 我要问的是如何使其不在按下按钮后进行检查,而是在键盘不活动 1000
我通过了几种导致时间延迟的方法,例如 pings 和 dirs。虽然它们都不是真正精确的,但有没有适当的方法来导致时间延迟? 我听说了一些东西,尽管它们不适用于所有计算机,不适用于我的 Windows
这个问题在这里已经有了答案: Simple C app using 50% cpu (6 个答案) 关闭 8 年前。 我尝试使用 ncurses 库和 C 编写一个 CUI Snake 游戏。一切正
我写了一个带有时间延迟的源代码。在 unix 中我使用了 #include 头文件和 usleep功能。 在 Windows 上这相当于什么? 在windows上写同样的代码应该用什么库和函数 最佳答
我正在尝试让我的 JButton 在我正在创建的游戏中闪烁红色。该网站上的所有解决方案都建议使用线程并将其置于 sleep 状态或使用计时器,但是,暂停缓解似乎是在颜色更改之后发生的 这是我的代码:
我正在使用 Javascript 和 HTML5 CANvas 制作动画。如何在 for 循环中实现延迟(非阻塞)?我想确保在延迟结束之前不会绘制第二条线。 for (i=1;i
我正在尝试让我的 JButton 为我正在创建的游戏闪烁红色。该网站上的所有解决方案都建议使用线程并将其置于 sleep 状态或使用计时器,但是,暂停似乎是在颜色变化之后出现的 这是我的代码: Col
我正在使用 Node.js(v0.12.4) 和 Socket.io(1.3.2) 开发实时交易应用程序。在那方面,当从 Node.js 向 GUI(Socket.Io) 发出响应时,我面临将近 (1
我试图弄清楚如何在 Excel VBA 中使用时间延迟。 这是我想做的事情: 我在宏中有一个按钮,当我单击它时,它会发送第一封电子邮件。然后 1 小时后,我想自动发送第二封电子邮件,而无需单击另一个按
我是一名优秀的程序员,十分优秀!