首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在用C++编写的控制台应用程序中制作加载动画?

如何在用C++编写的控制台应用程序中制作加载动画?
EN

Stack Overflow用户
提问于 2011-12-13 08:24:46
回答 7查看 34.2K关注 0票数 13

我正在用c++编写一个控制台应用程序,我需要使用ASCII字符来制作类似于"loading.gif“的东西。

以下是我应该使用的字符列表:

  1. --
  2. \
  3. |
  4. /
  5. --

这些符号将通过循环加载动画。

但是,当我编写输出时,它变成了如下所示:

输出行1: -输出行2: \输出线3: \输出线4: /输出行5:E 221

我需要这样做:

输出第1行:--这将一直被替换

它永远不应该进入第二行。

我如何在C++中做到这一点?有什么替代功能吗?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2011-12-13 08:33:59

您可以使用backspace字符('\b')返回并覆盖控制台上的字符。您还需要在每次更改后刷新输出,否则输出可能停留在缓冲区中而不会出现在控制台上。

下面是一个简单的例子:

代码语言:javascript
复制
#include <iostream>
#include <unistd.h> // for sleep()

int main()
{
    std::cout << '-' << std::flush;
    for (;;) {
        sleep(1);
        std::cout << "\b\\" << std::flush;
        sleep(1);
        std::cout << "\b|" << std::flush;
        sleep(1);
        std::cout << "\b/" << std::flush;
        sleep(1);
        std::cout << "\b-" << std::flush;
    }
}
票数 19
EN

Stack Overflow用户

发布于 2011-12-13 09:39:54

Microsoft Windows版本。

代码语言:javascript
复制
#include <iostream>
#include <windows.h> // for sleep()

int main()
{
    std::cout << '-' << std::flush;
    for (;;) {
        Sleep(10);
        std::cout << "\b\\" << std::flush;
        Sleep(10);
        std::cout << "\b|" << std::flush;
        Sleep(10);
        std::cout << "\b/" << std::flush;
        Sleep(10);
        std::cout << "\b-" << std::flush;
    }

    return 0;
}
票数 6
EN

Stack Overflow用户

发布于 2015-01-13 14:59:22

Mike的逻辑使用了,但看上去很逼真。

代码语言:javascript
复制
#include <iostream>
#include <unistd.h> // for sleep()

int main()
{

    std::cout << "Loading Please Wait";
    while (true)
    {
        sleep(1);
        std::cout << "." << std::flush;
        sleep(1);
        std::cout << "." << std::flush;
        sleep(1);
        std::cout << "." << std::flush;
        sleep(1);
        std::cout << "\b\b\b   \b\b\b" << std::flush;
    }
}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8486181

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档