帕斯卡的读取密钥是否相同;在C或C ++?

时间:2011-09-18 11:26:10

标签: c++ c console pascal console.readkey

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

5 个答案:

答案 0 :(得分:4)

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

您有几个选择:

  • 使用ncurses
  • 等外部库
  • 使用setvbuf()更改终端缓冲策略并使用fgetc()(如果您未更改缓冲策略,请等待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()