c++ - 控制台(显示)中的双缓冲?

标签 c++ c console

我正在尝试创建一个控制台乒乓球游戏,但遇到了以下问题。 我有以下内容:

int main()
{
    while(1)
    {
        clearScreen();

        std::stringstream sstr;
        for(int i = 0; i < 20; ++i)
        {
            sstr << "Mooooooo \n";
        }
        printf(sstr.str().c_str());
        restThread(50);
    }
    return 0;
}

我期望的输出是 Moo 被写入 20 次并且屏幕内容永远不会真正改变。然而,它不时闪烁。我怀疑这是因为输出在完全绘制之前显示在屏幕上。有没有解决的办法?例如,在所有字符都绘制到屏幕上之前不向用户显示任何内容?

谢谢

最佳答案

有诅咒/ncurses库,它要求您在显示任何内容之前刷新屏幕。它在平台支持方面非常普遍。

关于c++ - 控制台(显示)中的双缓冲?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4754577/

相关文章:

c程序for循环: execution sequence

c - Win32 快捷菜单在任何情况下都不发送消息

hibernate - Grails 控制台问题 : No Hibernate Session bound to thread,

java - 使用 java.util.Scanner() 读取多个单词字符串

c++ - 是否可以在全局函数中访问类成员?

c++ - 将 char* 替换为 shared_ptr<char>

c++ - 如何在 "pure"ISO C++ 中制作支持 GUI 的桌面应用程序

c++ - C++ 如何处理这个

c - 搜索 txt 文件然后在控制台打印 txt 文件并为搜索的字符串着色

c++ - 为什么迭代器不返回到集合的开头?