getch()等待Enter键?

时间:2012-12-03 14:16:31

标签: c windows getch

  

可能重复:
  C/C++: Capture characters from standard input without waiting for enter to be pressed

我在Windows 7上使用C-Free 4 Standard并编写了一个C程序。

我正在使用getch()作为暂停程序的函数,但是,在屏幕上按下回音的字符并等待按下Enter键然后再继续(它看起来不是与scanf的工作方式不同)。我尝试了getche(),它工作正常,尽管回声出现了。

getch()函数有什么问题?

2 个答案:

答案 0 :(得分:2)

  

getch,wgetch,mvgetch和mvwgetch,例程读取一个字符   从窗口。在无延迟模式下,如果没有输入正在等待,则为该值   ERR被退回。在延迟模式下,程序等待直到系统   将文本传递给程序。取决于的设置   cbreak,这是在一个字符(cbreak模式)之后,或者在第一个字符之后   换行(nocbreak模式)。在半延迟模式下,程序等待直到a   键入字符或已达到指定的超时。

在Windows中使用或多或少相同的方法。您可以使用_getch()来获取应用程序的输入字符,而无需缓冲。

答案 1 :(得分:0)

实际上有几种方法pause执行你的程序,直到你输入一些东西,一种方法是使用getchar()(这是{{1}的函数集的一部分它和官方标准库一样,它会产生与stdio.h相同的效果(这个函数是conio.h库的函数集的一部分,它不是官方库。)

如果您的问题是每次输入问题中不太清楚的字符时都想避免按getch(),请阅读:How to avoid press enter with any getchar()