C scr_还原功能不工作

C scr_还原功能不工作,c,curses,C,Curses,大家好,我正在编写这个程序,可以恢复scr_dump;创建的转储文件;。卸载部件正在工作,但恢复部件不工作。。这样做的目的是复制标准屏幕上的任何内容,并将其复制到一个文件中,通过再次调用该文件,它应该绘制最初存在的任何内容 int firstLoop = 0; initscr(); while (exitCounter != 1) { if (firstLoop == 0)

大家好,我正在编写这个程序,可以恢复scr_dump;创建的转储文件;。卸载部件正在工作,但恢复部件不工作。。这样做的目的是复制标准屏幕上的任何内容,并将其复制到一个文件中,通过再次调用该文件,它应该绘制最初存在的任何内容

          int firstLoop = 0;

            initscr();
    while (exitCounter != 1)
    {

               if (firstLoop == 0)
               {
                   printw("Testing 123");
                   scr_dump("test");
                   clear();
                   firstLoop = 1;
                    exitCounter = 1;
               }
        }


                   scr_restore("test");
                   doupdate();
                   refresh();


            getch();

            endwin();
        }
您应该在printw调用后添加一个刷新调用,否则将转储一个空白屏幕

使用此代码:

#include <curses.h>

int main(void) {
    initscr();
    noecho();

    printw("Testing 123");
    refresh();

    scr_dump("test");
    clear();

    getch();

    scr_restore("test");
    doupdate();
    refresh();

    getch();

    endwin();

    return 0;
}

您应该会看到一个空白屏幕,然后在按下一个键后,会看到您的消息。scr_dump和scr_restore都可能失败,因此显然您应该检查返回值。

应该在什么时候进行恢复?每次调用此函数时,firstLoop都会初始化为0。当达到if语句时,它将不再是其他任何东西。张贴一封电子邮件。利润。好的,只是修复了它仍然不起作用。在我自己尝试了一些事情之后,我和你一样困惑。我找到的所有文件都说这应该行得通。在同一个函数中运行屏幕转储和恢复似乎有点奇怪,因此我将尝试更多的方法,如果我有答案,可能会发布一个真实的答案。