C程序在window(方形)内不打印垂直线
C program Vertical line not printing within window (Square)
我目前有一个程序可以简单地在屏幕上绘制一个正方形,但是,我正在尝试向这个正方形添加垂直线,它会打印到屏幕上,但不会打印到它定义的全长,而且也不在广场内。任何帮助将不胜感激!
#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;
}
您需要 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
是否保证 return 非 NULL
但检查文档,因为在这种情况下它可以 return NULL
你将有未定义的行为。
我目前有一个程序可以简单地在屏幕上绘制一个正方形,但是,我正在尝试向这个正方形添加垂直线,它会打印到屏幕上,但不会打印到它定义的全长,而且也不在广场内。任何帮助将不胜感激!
#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;
}
您需要 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
是否保证 return 非 NULL
但检查文档,因为在这种情况下它可以 return NULL
你将有未定义的行为。