私はちょうどncursesで遊んでいるので、本当に奇妙な動作を発見しました。C:ncurses、initscr()はgetchar()の動作を変更しますか?
私は、ncursesのlibからinitscr()を使用し、その後通常のgetchar()を使用すると、プログラムは最初のキーを押した後に終了します。
私が期待する通常のgetchar()の動作は、私がreturnを押すまで(多かれ少なかれ)入力できるということです。
#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/getch-and-putchar-not-working-without-return)が含まれます。 –