NCurses – getstr() 和功能键

Posted

技术标签:

【中文标题】NCurses – getstr() 和功能键【英文标题】:NCurses – getstr() and function keys 【发布时间】:2012-05-27 18:44:43 【问题描述】:

我的情况:

ncurses 模式下我有窗口 contentWin。 从这个窗口我想通过这个代码读取“字符串”。
char str [41];
wgetnstr(contentWin, str, 40);

我希望能够在这一刻抓住 F2 键。我考虑捕捉字符,然后比较然后(如果!= F2)将其放入终端和 str 而不使用 wgetnstr()

有不同(更简单)的方法吗?谢谢:-)。

【问题讨论】:

【参考方案1】:

我不知道。您可能想要创建自己的函数,类似于 wgetnstr() 来检查 F2 等......

您可以将函数基于以下捕获 F2 的代码。

#include <ncurses.h>

int main()
   
    int ch;

    initscr();          /* Start curses mode        */
    raw();              /* Line buffering disabled  */
    keypad(stdscr, TRUE);       /* We get F1, F2 etc..      */
    noecho();           /* Don't echo() while we do getch */

    while( (ch = wgetch(stdscr) ) != KEY_F(2))
    
        printw("Key code: %u Key: %c\n", ch, ch);
        refresh();          /* Print it on to the real screen */
    
    endwin();           /* End curses mode        */

    printf("F2 pressed .. program exiting\n");

    return(0);

【讨论】:

以上是关于NCurses – getstr() 和功能键的主要内容,如果未能解决你的问题,请参考以下文章

Ncurses入门-安装与使用

NCurses 和 ESC、ALT 键

鼠标向上滚动(Ncurses / C++)

在 ncurses 中使用数字键盘键

简单的 ncurses 应用程序对箭头键没有反应

我如何保证终端具有 NCURSES 的 Unicode/宽字符支持?