2015-01-14 30 views
0

我目前有一个程序只是在屏幕上绘制一个方形,但是,我试图在这个方形上添加垂直线,它可以打印到屏幕上,但不是它定义的全部长度,也不在广场内。任何帮助将非常感激!C程序垂直线不在窗口内打印(方形)

#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; 
} 
+0

我不明白你的问题。你能添加你的预期输出吗? –

+0

正方形被定义为从原点(0,0)开始,我绘制的垂直线被定义为从(1,1)开始,因此在数学上说...垂直线应该绘制在正方形中,但它是不是,它被吸引到它下面。 – user20842454566

回答

0

你需要mvwvline,而不是mvvline

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

,当然还有win varible初始化

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但检查文档,因为在这种情况下它coul d返回NULL您将有未定义的行为。

+0

干杯!非常感谢! – user20842454566