0

让我们从我的代码的样子开始,然后我将解释我的问题:

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
}

现在的问题:
如果您还没有解决,我遇到的问题是,当我按下键盘上的回车键时,绝对没有任何反应。
我尝试将 to 更改KEY_ENTER'\n'- 不起作用 - 甚至char ch通过多次迭代(包括intand )更改了 which wchar_t
一切都无济于事,在你说寻找答案并让我收拾行囊开始在互联网的每个角落进行危险的冒险之前,我已经尝试过,如果我没有我不会冒险在这里,寻求帮助。
所以现在我的搜索把我带到了这里,我请求你们——互联网上可爱的人——帮助我寻找我一直在寻找的答案。我给你我的最感谢和感谢

4

1 回答 1

0

试试case '\r':。(为了更好地衡量,您可以case '\r': case '\n': case KEY_ENTER:像在 testcurs.c 中所做的那样,捕捉所有可能性。)调用 tononl()是为什么您得到 '\r' 而不是 '\n'。

至于KEY_ENTER,我唯一的借口是它在 PDCurses 评论中被标记为“不可靠”。我可以假装它代表键盘的“Enter”键,而不是键盘主要部分通常标记为“Return”的键......除了 PDCurses 也有PADENTER,专门用于此目的。事实上,就像 PDCurses 中的很多东西一样,原因KEY_ENTER就在那里,并且定义它的方式,有点历史混乱。

于 2014-07-24T04:32:03.337 回答