NCurses добавляет новую строку, когда вывод больше, чем столбцы терминала - PullRequest
0 голосов
/ 25 апреля 2020

Я заметил, что когда я печатаю строку в 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 для печати широких символов, но проблема остается.

1 Ответ

1 голос
/ 25 апреля 2020

printw, waddstr (или waddwstr) в конечном счете, позвоните waddch (или wadd_wch), что соответствует правому полю. Вы можете использовать (но менее удобно) waddchstr или wadd_wchstr, которые не переносятся.

...