当输出大于终端列时,NCurses 添加新行

NCurses adds new line when output greater than terminal columns

我注意到当我在 ncurses 中打印的行超过了终端列的数量时,ncurses 添加了换行符:

#include <ncurses.h>

int main()
{
        initscr();                      /* Start curses mode              */
        printw("Hello World aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa!!!");
        refresh();                      /* Print it on to the real screen */
        getch();                        /* Wait for user input */
        endwin();                       /* End curses mode                */

        return 0;
}

现在,由于终端的列较少,我的输出如下所示:

Hello World aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa!!!

在我的应用程序中,我不想复制终端输出,但是当我这样做时,我在换行符处换行,但在调用 printw 时我没有输入任何新行。 ncurses 是否自动添加换行符?我怎样才能禁用它?这是我的问题的简单版本,因为在我的例子中,我使用 mvwaddnwstr 打印宽字符,但问题仍然存在。

printw, waddstr (or waddwstr) ultimately call waddch (or wadd_wch), which wraps at the right margin. You could use (but less convenient) waddchstr or wadd_wchstr,不换行。