/* Initialize new terminal i/o settings */
static struct termios old, new1;
void initTermios(int echo) {
tcgetattr(0, &old); /* grab old terminal i/o settings */
new1 = old; /* make new settings same as old settings */
new1.c_lflag &= ~ICANON; /* disable buffered i/o */
new1.c_lflag &= echo ? ECHO : ~ECHO; /* set echo mode */
tcsetattr(0, TCSANOW, &new1); /* use these new terminal i/o settings now */
}
/* Restore old terminal i/o settings */
void resetTermios(void) {
tcsetattr(0, TCSANOW, &old);
}
矢印キーを入力として(たぶん1文字として)取得するには、現在のコードが必要な他のすべてのものに適しています... ncursesCまたはC++を使用してコンソールから生の入力を取得
'new1.c_lflag&= echo?エコー:〜エコーはこれが本当に働いているのですか?私はそれが 'new1.c_lflag = echoの行に沿ってもっとあるべきだと思いますか? new1.c_lflag | ECHO:new1.c_lflag&〜ECHO' – Fiktik
それは完璧に動作します。 – Shawn
@Shawn:Fiktikは完全に正しいです。エコーをオフにし、それをオンにしたことがないと思われます。 –