大家好,我正在编写的这个程序“可以”恢复由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();
        }

最佳答案

您应该在refresh()调用之后添加对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;
}

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

10-07 19:12
查看更多