C 课程可以';t显示结构x y位置上的元素

C 课程可以';t显示结构x y位置上的元素,c,terminal,ncurses,C,Terminal,Ncurses,我想展示一个有ncurses的机器人。 当使用printf打印x&y时,一切正常,但使用mvwprintw(窗口,x,y,“a”)没有显示任何内容。 有什么问题 文件:查看 #包括 #包括“config.c” #包括“arena.c” void创建_窗口(){ 机器人[机器人数量]; 创建_机器人(robots); initscr(); 原始(); noecho(); WINDOW*WINDOW=newwin(术语高度,术语宽度,0,0); 刷新(); 盒子(窗口,0,0); 对于(大小i=0;

我想展示一个有ncurses的机器人。 当使用printf打印x&y时,一切正常,但使用
mvwprintw(窗口,x,y,“a”)没有显示任何内容。
有什么问题

文件:查看

#包括
#包括“config.c”
#包括“arena.c”
void创建_窗口(){
机器人[机器人数量];
创建_机器人(robots);
initscr();
原始();
noecho();
WINDOW*WINDOW=newwin(术语高度,术语宽度,0,0);
刷新();
盒子(窗口,0,0);
对于(大小i=0;i
文件robot.h


typedef结构机器人{
int状态;
字符id[1];
双posX,posY;
双posXo,posYo;
整数速度;
智力生活;
导弹(2),;
}机器人;
文件arena.c


int get_posx(机器人r){
返回(r.posX*术语宽度)/宽度;
}
int get_posy(机器人r){
返回值(r.posY*术语高度)/高度;
}
执行屏幕:
有任何“a”显示。

有几种可能性:

  • 调用
    mvwprintw
    交换x/y坐标(因此它将接受相当大的x值,并将其作为行号,当其超出范围时会丢失任何写入的文本)
  • 屏幕截图没有显示框的底部(可能是
    TERM\u HEIGHT
    不正确,加剧了坐标问题)
  • printf
    挡住了路,混淆了光标的真正位置
  • getch
    应该是一个
    wgetch(窗口)
    ,以防万一(我没有看到任何)有待更新的
    stdscr