无需按Enter键即可捕获EOF键

时间:2013-10-08 04:58:38

标签: c eof keystroke getch

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

有没有办法让_getch()来捕获EOF?这是适用于Windows的,如果它有任何重要性,任何帮助都非常感谢,因为我一直无法找到任何东西。

1 个答案:

答案 0 :(得分:0)

标准C输入流stdio是行缓冲的,并且没有定义的强制刷新方法。如果你想避免这种情况并在输入每个新角色时从缓冲区读取,你必须使用一些特定于操作系统的魔法,这是来自_getch的{​​{1}}试图做的。

conio.h - 类型函数还有其他实现,例如来自PDCurses librarygetch