繁体   English   中英

c++ 中带有 ncurses 的新行

[英]New line with ncurses in c++

#include <ncurses.h>

int main(int argc, char ** argv)
{
    initscr();
    while(1){
        int c = getch();
        if(c == 'q'){
            break;
        }
    }
    return 0;
}

好的,抱歉格式错误,但这就是代码。 它工作正常,终端捕捉到我按下的任何字符,但是当我按下 ENTER 时,我无法获得换行符。 为什么?

谢谢

curses 为此有一个 function :

nl/非l
nlnonl例程控制底层显示设备是否在输入时将返回键转换为换行符。

源代码注释提到ICRNL

/*
 * Simulate ICRNL mode
 */
if ((ch == '\r') && sp->_nl)
    ch = '\n';

这是一个POSIX termios功能:

CR
输入时的特殊字符,如果设置了ICANON标志,则可以识别该字符; 它是<carriage-return>字符。 ICANONICRNL设置IGNCR时,该字符应翻译为NL ,并应具有与NL字符相同的效果。 它不能改变。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM