WSL显示框的NCurses错误

时间:2019-03-13 15:06:57

标签: c ncurses windows-subsystem-for-linux

我正在Windows计算机上使用ubuntu,该计算机使用Linux的Windows子系统来编译简单的程序,该程序使用C语言中的ncurses来显示ncurses窗口内的一个框。如下图所示,该框无法完全呈现。我的代码有问题吗?还是WSL中的问题?

The drawn box displays incorrectly 盒子应该伸展并连接左右两侧

    int main()
{
    initscr();
    noecho();
    cbreak();

    int sizeY, sizeX;
    getmaxyx(stdscr, sizeY, sizeX);

    WINDOW *mainMenu = newwin(10, 10, 5, 10);
    box(mainMenu, 0, 0);
    refresh();
    wrefresh(mainMenu);
    keypad(mainMenu, true);

    getch();
    endwin();

    return 0;
}

1 个答案:

答案 0 :(得分:1)

getch();应该是wgetch(mainMenu); 否则,重新粉刷stdscr可能会擦掉mainWindow的一部分。

但这似乎不是图片中显示的问题。这可能是在某些与 xterm 不完全匹配的终端上使用的TERM=xterm(或TERM=xterm-256color),例如repeat功能。