【问题标题】:C - Ncurses window not displayingC - Ncurses 窗口不显示
【发布时间】:2014-07-08 17:17:34
【问题描述】:

我的光标移动按预期工作,唯一的问题是我的窗口没有显示。我写的要出现在窗口中的内容没有显示。我尝试使用谷歌搜索解决方案,但类似的代码与我的方式相同。我只是不明白这里有什么问题。

编辑:我忘了说,我对这个窗口的实际意图是更新游戏的分数。你看到的印刷品只是一个例子。

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

int main()
{
    int y = 0;
    int x = 0;
    int oldy = 0;
    int oldx = 0;
    char m = 'l';
    initscr();
    WINDOW* win;
    win = newwin(1, 40, 10 ,0);
    mvwprintw(win,0,0,"First line");
    wrefresh(win);

    while(m != 'q')
    {
            m=getch();
    if(m == 's')
        {
            move((y= oldy+1),x);
            refresh();
            oldy = y;
        }
    else if(m == 'd')
        {
            move(y,(x=oldx+1));
            refresh();
            oldx = x;
        }
    else if(m == 'a')
        {
            move(y,(x=oldx-1));
            refresh();
            oldx = x;
        }
    else if(m == 'w')
        {
            move((y= oldy-1),x);
            refresh();
            oldy = y;
        }
    else 
        m = 'q';
    }

    delwin(win);
    endwin();

    return 0;
}

【问题讨论】:

    标签: c ncurses


    【解决方案1】:

    如下所示,

    #include <ncurses.h>
    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
            int y = 0;
            int x = 0;
            int oldy = 0;
            int oldx = 0;
            char m = 'l';
            initscr();
    
            mvaddstr(0,0, "First line");
    
            while(m != 'q')
            {
                    m=getch();
                    if(m == 's')
                    {
                            move((y= oldy+1),x);
                            refresh();
                            oldy = y;
                    }
                    ................
                    ................  
    

    【讨论】:

    • 但是窗口完全被移除了对吧?我希望窗户在那里。我遇到的问题是窗口没有显示。窗口的目的是让我可以显示变化的分数。 “第一行”只是一个示例打印。
    • win = initscr();除了创建一个新窗口
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-24
    • 2011-11-10
    相关资源
    最近更新 更多