我正在寻找等待用户按键的控制台功能。我希望它像Pascal的readkey一样;与仅限控制台解决方案一样。没有GUI库/图形库/窗口库/ WinApi调用(Windows)。它应该是跨平台的,并且(最好)是C std库或C ++类库的一部分。那么有没有这样的函数/类方法等?
答案 0 :(得分:4)
C标准库没有“键盘缓冲区”的概念。输入/输出主要是基于行的(按下ENTER时触发)。
您有几个选择:
答案 1 :(得分:2)
据我所知,您的商品没有便携式解决方案。在Windows中,您可以使用具有名为<conio.h>
的函数的标头getch()
来直接从控制台获取字符。如果您使用的是Linux,则可以使用库ncurses。
答案 2 :(得分:1)
如果您处于Windws运行时环境中,则可以使用非标准C函数kbhit()。还有一个与Windows kbhit( )
等效的C语言Linux。该功能正是您想要的:它会告诉您键盘字符是否在没有读取字符的情况下被键入;或者,如果输入了一个字符,则会读取并传送给您一个字符。你可以在这里找到它:
http://pwilson.net/sample.html
向下滚动到标题为“Linux和Unix的单字符键盘输入”
的段落HTH
答案 3 :(得分:0)
考虑_getch?
答案 4 :(得分:0)
简单:
getchar();
字面上相当于 C# 中的 readkey()
。