2013-10-08 103 views
1

我正在编写一个程序,该程序有一个主菜单和一些功能,我可以通过键入一个菜单选项的数字来访问这些功能。为此,我正在使用_getch()。当用户输入EOF键时,我需要能够退出程序,但_getch()实际上并没有捕捉到EOF按键。我知道我可以通过使用getchar()而不是_getch()来实现它,但是我不希望用户在每次函数选择后都不得不按下回车键。在不按Enter键的情况下捕捉EOF按键C

有没有办法让_getch()捕捉EOF?这对于Windows来说是非常重要的,任何帮助都非常值得赞赏,因为我一直无法找到任何东西。

回答

0

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

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