C程序垂直线不在窗口内打印(方形)

时间:2015-01-14 00:48:38

标签: c window ncurses

我目前有一个只是在屏幕上画一个正方形的程序,但是,我正在尝试向这个正方形添加垂直线,它会打印到屏幕上,但不是它定义的全长,而不是在广场内。任何帮助将不胜感激!

#include <ncurses.h>

int main()
{
    initscr();
    mvvline(1,1,ACS_VLINE,10); //does not fully print to screen, and is printed outside of the square
    refresh();

    WINDOW *win = newwin(10,10,0,0);
    box(win, '|', '-');
    touchwin(win);
    wrefresh(win);

    getchar();
    endwin();
    return 0;
}

1 个答案:

答案 0 :(得分:0)

您需要mvwvline而不是mvvline

mvwvline(win, 1, 1, '|', 10); // does print to screen

当然,您必须在初始化win变量后移动代码

int main()
{
    initscr();
    refresh();

    WINDOW *win = newwin(10, 10, 0, 0);
    box(win, '|', '-');
    mvwvline(win, 1, 1, '|', 10); //does not print to screen
    touchwin(win);
    wrefresh(win);

    getchar();
    endwin();
    return 0;
}

我不知道win是否可以保证返回非NULL但请检查文档,因为如果它返回NULL,您将有未定义的行为。