c++ - 如何阻止 C++ NCurses 显示按下的键?

标签 c++ key ncurses

我目前正在用 C++ 创建一个 Tic-Tac-Toe 游戏。在放置瓷砖的功能中,我使用了一个无穷无尽的 while 循环来检查 getch(),然后移动光标或放置瓷砖。然而,当我按其他东西然后输入或箭头时,它会在黑板上写下那个字符。但我不想要那个。你能告诉我怎么做吗?

bool moveCursor ( void )
{
    int c;
    int tmpX = m_Xpos;
    int tmpY = m_Ypos;

    while (1){
        c = getch();

        if(c == KEY_LEFT) tmpX--;
        if(c == KEY_RIGHT) tmpX++;
        if(c == KEY_UP) tmpY--;
        if(c == KEY_DOWN) tmpY++;

        if (tmpY > m_len ) tmpY--;
        if (tmpX > m_len ) tmpX--;
        if (tmpY < 1 ) tmpY++;
        if (tmpX < 1 ) tmpX++;

        if(c == 'q') return false;
        if(c == '\n')
        {
            m_Ypos = tmpY;
            m_Xpos = tmpX;
            if (checkValidMove(tmpY,tmpX))
            {
                break;
            }
        }
        if ( c != KEY_LEFT && c != KEY_RIGHT && c != KEY_UP && c != KEY_DOWN && c != 'q' && c != '\n' ) continue;//my try to fix it, but didn't work
        move(tmpY,tmpX);
        refresh();
    }
    return true;
}

最佳答案

所以是的,我有点傻——我只需要使用 noecho() 选项

关于c++ - 如何阻止 C++ NCurses 显示按下的键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30622835/

相关文章:

c++ - 仅修复 vector<vector<int>> 中的外部 vector

c - ncurses 水平显示字符而不是垂直显示

c++ - cin 会将键盘输入的\n 识别为换行符吗?

c++ - 什么时候使用模板显式实例化?

javascript - 如何从另一个对象中的一个对象访问多级键/值

sql - 列 'tblGender.ID' 与外键 'tblPerson.GenderID' 中引用列 'tblPerson_GenderID_FK' 的数据类型不同

php - 用升序数字替换数组键

c++ - 无法将 ncurses 表单与窗口相关联

Python curses 不显示颜色,而 C ncurses 工作正常

c++ - 使用 MinGW 5.3.0 构建 boost 1.61.0