Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C程序垂直线不在窗口内打印(方形)_C_Window_Ncurses - Fatal编程技术网

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

C程序垂直线不在窗口内打印(方形),c,window,ncurses,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 refres

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

#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;
}
#包括
int main()
{
initscr();
mvvline(1,1,ACS_VLINE,10);//不能完全打印到屏幕上,而是在正方形外打印
刷新();
WINDOW*win=newwin(10,10,0,0);
方块(赢,“|”和“-”);
touchwin(win);
雷弗斯(赢);
getchar();
endwin();
返回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
,您将有未定义的行为。

我不理解您的问题。你能添加你期望的输出吗?正方形定义为从原点(0,0)开始,我画的垂直线定义为从(1,1)开始,从数学上来说。。垂直线应该画在正方形上,但它不是,而是画在它的正下方。干杯!非常感谢!