PDCurses KEY_ENTER不起作用

时间:2014-07-24 02:22:53

标签: c++ curses pdcurses

让我们从我的代码看起来然后我将解释我的问题:

int main {

char ch;  //Stores key presses

initscr();
raw();  
nonl();  
keypad(stdscr, TRUE);  
noecho();  

//Some code  

ch = getch();  
switch (ch) {
    case KEY_UP:{
        //Code that works
        break;
    }
    case KEY_ENTER:{
        //Some code- that doesn't work problem being the above
        break;
    }
    //Other case statements
}

现在问题:
如果你还没有解决的话,我遇到的问题是,当我按下键盘上的输入/返回键时,绝对没有任何反应。
我尝试将KEY_ENTER更改为'\n' - 无效 - 甚至更改char ch时通过多次迭代,包括intwchar_t
一切都无济于事,在你说寻找答案之前,让我把我的行李包起来,通过互联网的每个角落进行危险的冒险,我已经试过了,如果我没有,我就不会冒险,寻求援助。
所以现在我的搜索把我带到了这里,我问你 - 网络中可爱的人 - 帮助我寻找我一直在寻找的答案 对于那些可能足够勇敢回答它的人,我向你表示最衷心的感谢和感谢

1 个答案:

答案 0 :(得分:0)

试试case '\r':。 (为了更好的衡量,您可以{test}执行case '\r': case '\n': case KEY_ENTER:,基本上在testcurs.c中完成,以捕获所有可能性。)调用nonl()是您获得' \的原因。 R'而不是' \ n'。

关于KEY_ENTER,我唯一的理由是它标记为“不可靠”#34;在PDCurses评论中。我可以假装它意味着代表键盘"输入"关键,而不是通常标记的关键"返回"在键盘的主要部分...除了PDCurses还有PADENTER,专门用于此目的。事实上,像PDCurses中的很多东西一样,KEY_ENTER存在的原因,并且定义它的方式,是一个历史的混乱。