C scr_restore 函数不工作

标签 c curses

大家好,我正在编写这个程序,它“可以”恢复由 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() 调用之后添加对 refresh() 的调用,否则您将转储空白屏幕。

使用这段代码:

#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() 都可能失败,因此显然您应该检查返回值。

关于C scr_restore 函数不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28508809/

相关文章:

C- 指针、数组和结构之间的交互

c - 使用 Bison 解析错误

c - getch() 的文件描述符

python - Python中的多线程诅咒输出

c - 为什么在不对变量进行任何修改的情况下,两个 printf 语句之间打印的指针变量地址不同?

用于目录访问的 C 库

python 诅咒 tty 屏幕闪烁

c++ - Ncurses:在列之间创建填充空间

c - 在curses窗口中执行bash命令

c - Eclipse(开普勒)不显示结构成员