gpt4 book ai didi

C- 窗口/打印不出现

转载 作者:行者123 更新时间:2023-11-30 15:31:36 24 4
gpt4 key购买 nike

伙计们,我不知道为什么窗口边框/打印没有出现。我哪里出错了?它之前一直在工作。我添加了评论括号中看到的部分。即使我删除了这些部件,它也停止工作。

#include <ncurses.h>
#include <stdio.h>
#include <stdlib.h>

int main()
{
int y = 2;
int x = 2;
int oldy = 2;
int oldx = 2;
char m = 'l';

initscr();
WINDOW* win;
win = newwin(41,40, 0 ,0);
/*WINDOW* win2 = newwin(10,10, 40 ,0);*/
box(win, ACS_VLINE, ACS_HLINE);
/*box(win2, ACS_VLINE, ACS_HLINE);*/
mvwprintw(win,1, 1, "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX");
mvwprintw(win,2, 1, "X X X X X X X X");
mvwprintw(win,3, 1, "X X X X XXX X X X XXXXXXXX X XXXXX X X");
mvwprintw(win,4, 1, "X X X X X X X X X X");
mvwprintw(win,5, 1, "X XXXXXXX XXXXX X X XXXXXXXXXX XXXXX X");
mvwprintw(win,6, 1, "X X X X X X X");
mvwprintw(win,7, 1, "XXXXXXX X XXXXXXX XXXXXXXXXX XXXXXXXXX");
mvwprintw(win,8, 1, "X X X X X X X");
mvwprintw(win,9, 1, "X XXXXXXX X XXXXXXX XXXXXX X XXXXX X");
mvwprintw(win,10, 1, "X X X X XXXX X X X");
mvwprintw(win,11, 1, "X X XXXXX X XXXX XXXXXXXX X X XXX");
mvwprintw(win,12, 1, "X X X X XXXX X XXXXXXX X X X");
mvwprintw(win,13, 1, "X X XXX X X X XXXXX X X X X X");
mvwprintw(win,14, 1, "XXXXX X X XXXX X X X X X X XXXXX X");
mvwprintw(win,15, 1, "X X X X XXXXX X X X X X X X");
mvwprintw(win,16, 1, "X XXXXX X X XXXX X X X X XXXXX X X");
mvwprintw(win,17, 1, "X X X X X XXXXX X X");
mvwprintw(win,18, 1, "X X XXXXX XXXX X X XXXXXXXXXXXXXXXXX");
mvwprintw(win,19, 1, "X X X X O");
mvwprintw(win,20, 1, "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX");
wmove(win,2,2);
wrefresh(win);
/*wrefresh(win2);*/


while(m != 'q')
{
/*mvwprintw(win2,41,0,"22");*/
/*wrefresh(win2);*/
m=getch();
/*mvwprintw(win2,40,0,"Please use the following keys to navigate through the maze.(W) Up (S) Down (D) Right (A) Left");*/
wrefresh(win);

switch(m)
{
case 'S': if(mvwinch(win,(oldy+1),x)=='X')
{
mvwprintw(win,40,0,"Sorry, you cant move there.");
wrefresh(win);
wmove(win,oldy,oldx);
wrefresh(win);
}

else
{
wmove(win,(y=oldy+1),x);
wrefresh(win);
oldy = y;
}
break;

case 'D': if(mvwinch(win,y,(oldx+1))=='X')
{
mvwprintw(win,40,0,"Sorry, you cant move there.");
wrefresh(win);
wmove(win,oldy,oldx);
wrefresh(win);
}

else
{
wmove(win,y,x=(oldx+1));
wrefresh(win);
oldx = x;
}
break;

case 'A': if(mvwinch(win,y,(oldx-1))=='X')
{
mvwprintw(win,40,0,"Sorry, you cant move there.");
wrefresh(win);
wmove(win,oldy,oldx);
wrefresh(win);
}

else
{
wmove(win,y,x=(oldx-1));
wrefresh(win);
oldx = x;
}
break;

case 'W': if(mvwinch(win,(oldy-1),x)=='X')
{
mvwprintw(win,40,0,"Sorry, you cant move there.");
wrefresh(win);
wmove(win,oldy,oldx);
wrefresh(win);
}

else
{
wmove(win,y=(oldy-1),x);
wrefresh(win);
oldy = y;
}
break;

default: m = 'q';

}

}

delwin(win);
/*delwin(win2);*/
endwin();

return 0;
}

最佳答案

您打印的所有内容都在 win 中,但 getch()stdscr(默认全屏窗口)读取。从 stdscr 读取会导致它跳到窗口堆栈的顶部,从而遮盖您的 win

使用wgetch(win)

关于C- 窗口/打印不出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24684740/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com