2012-01-04 63 views
2

是否有C函数不等待输入,但如果有输入,它会检测到它? 我在这里试图做的是无休止地继续循环,直到按下任何键。 我是一个新手,迄今为止学到的所有输入函数都等待用户输入内容.. 我希望我很清楚,但如果我不是,我很乐意发布代码。 。C函数不会等待任何输入,但会检测是否有输入?

+1

你使用的是什么操作系统和编译器? – 2012-01-04 18:34:28

+0

@MikeNakis Windows 7 Ultimate x86和code :: blocks与GNU GCC编译器 – 2012-01-04 18:36:47

回答

3

的WIndows的kbhit()正是这样做的无阻塞键盘字符就绪检查,而且也适用于Linux over here

+1

谢谢.. kbhit()与getch()检索已被按下的作品真棒.. :) – 2012-01-05 09:50:06

+0

@Shashwat Mehta - 对你有好处!感谢您的反馈。如果它适合你,请不要忘记接受这个答案。 – 2012-01-05 10:00:14

0

您还可能要检查的信号()如果你需要的是一种方法来停止循环和运行程序功能的结束。

这取决于你究竟想做什么,但一般:

A)你让你的程序单线程,并通过读取非阻塞输入检查输入。 B)你产生了一个不同的线程,它将处理输入并将结果传回给主线程。

+1

那么,这种难以捉摸的“非阻塞式输入读取”正是他所要求的。 – 2012-01-04 19:00:05

2

一个的kbhit()由于没有人明确表示它....

重要需要注意的是,C提供的标准库确实提供了您正在寻找的功能,而不是而不是。那么实现它需要使用第三方库和/或有关您正在使用的操作系统的特殊知识。

通常,您将拥有一些可用的第三方库。例如,如果您使用Visual Studio,则可以使用http://msdn.microsoft.com/en-us/library/58w7c94c(v=VS.100).aspx。我不确定你的设置有什么可用的。

+1

谢谢.. kbhit()与getch()检索已被按下的作品真棒.. :) – 2012-01-05 09:47:21