1

我正在编写一个程序,它有一个主菜单,有几个功能,我允许用户通过为一个菜单选择输入一个数字来访问这些功能。为此,我正在使用 _getch()。当用户输入 EOF 键时,我需要能够退出程序,但 _getch() 实际上并没有捕捉到 EOF 击键。我知道我可以通过使用 getchar() 而不是 _getch() 来让它工作,但我不希望用户在每次选择函数后都被迫按 enter。

有没有办法让 _getch() 捕获 EOF?这适用于 Windows,如果它很重要,任何帮助都非常感谢,因为我在那里找不到任何东西。

4

1 回答 1

0

标准 C 输入流stdio是行缓冲的,并且没有定义强制刷新它的方法。如果您想避免这种情况并在输入每个新字符时从缓冲区中读取,您必须使用一些操作系统特定的魔法,这就是_getchfromconio.h尝试做的事情。

还有其他getch类型的函数实现,例如getch来自PDCurses 库

于 2013-10-08T05:24:15.023 回答