3

我正在寻找一个等待用户按键的控制台功能。我希望它像 Pascal 的 readkey;就像在仅控制台解决方案中一样。没有 GUI 库/图形库/窗口库/WinApi 调用 (Windows)。它应该是跨平台的,并且(最好)是 C 标准库或 C++ 类库的一部分。那么有没有这样的函数/类方法等?

4

5 回答 5

6

C 标准库没有“键盘缓冲区”的概念。输入/输出主要是基于行的(按下 ENTER 时触发)。

你有几个选择:

于 2011-09-18T11:36:26.793 回答
2

据我所知,您的项目没有便携式解决方案。在 Windows 中,您可以使用具有直接从控制台获取字符<conio.h>的函数的标题。getch()如果您在 Linux 中,那么您可以使用库ncurses

于 2011-09-18T11:37:00.030 回答
1

如果您在 Windws 运行时环境中,您可以使用非标准 C 函数 kbhit()。并且有一个适用于 Windows 的 C 语言 Linux 等价物kbhit( )。该函数做你想做的事:它会告诉你是否在没有读取字符的情况下输入了键盘字符;或者,如果输入了一个字符,则将读取并向您发送一个字符。你可以在这里找到它:

http://pwilson.net/sample.html

向下滚动到标题为“Linux 和 Unix 的单字符键盘输入”的段落

高温高压

于 2011-09-18T11:40:41.693 回答
0

考虑_getch

于 2011-09-18T11:28:45.447 回答
0

简单的:

getchar();

从字面上看,相当于readkey()C# 中的 for。

于 2021-05-07T14:20:54.643 回答