【发布时间】:2015-06-22 10:32:38
【问题描述】:
我正在 Windows 中编写一个简单的 C 控制台应用程序,它在无限循环中获取用户输入。
我希望应用程序处于“阅读模式”并继续阅读,直到用户按下退出键(例如退出键)。
当按下特定的特殊键时,如何接收用户输入并终止它?
例子:
while (1)
{
// How do I stop loop and input with a specific key hit, e.g., ESC?
fgets(buff, 255, stdin);
printf("%s\n", buff);
}
【问题讨论】:
-
使用
while(!kbhit())。 -
@Kfir 我添加了一些示例代码来阐明您可能想问的问题。如果这不反映您的原始问题,请随意调整代码并为您的问题添加更多详细信息。
-
@moooeeeep 谢谢,这非常准确。
-
我是否正确地解释为,当用户按下 ESC 时,您不仅要停止循环,还要退出对
fgets()的(阻塞)调用? -
@Kfir 我进一步更新了这个问题。我希望我明白你的意思。
标签: c windows user-input keyboard-events