我只是玩弄ncurses,所以,我发现了一个非常奇怪的行为。C:ncurses,initscr()更改getchar()的行为?
当我使用initscr的()从ncurses的lib和事后我使用正常的getchar(),则程序按压第一键之后终止。
正常的getchar()行为我所期望的,是我可以输入(或多或少),只要等我按回车键。
#include "curses.h"
int main()
{
initscr();
getchar();
//endwin();
return 0;
}
任何人都可以解释为什么会发生这种情况吗?
记录和()'退出之前显示从'的getchar的值。包括'endwin()',除非你喜欢重置你的终端特性(或者,我想,除非你使用的IDE在运行程序时创建一个新的终端窗口)。当你使用'initscr()'或类似的,你改变标准输入的规则。不要指望正常的行为;规则已经改变。 –
你可以在[https://stackoverflow.com/questions/10256477/getch-and-putchar-not-working-without-return](https://stackoverflow.com/questions)找到一个很好的例子,/10256477 /残培和-的putchar - 不工作,不回)。 –