2

如果标题不能准确地揭示我想要做什么,以下是我的问题。

我想在 Linux 或 Mac 终端中编写一个 c++ 程序,以在命令行模式下在同一位置打印从 1、2、3 开始计数的数字。例如,它就像在您的工作进行时显示百分比数(例如下载某些东西、安装软件...)。

我编写了一个简单的 for 循环来打印数字并usleep(1000);在打印下一个数字之前使用 1 秒的延迟。然后我cout << "\b";尝试将光标移回以在同一位置显示即将到来的数字。但是我无法创建我想要的效果,数字打印在一行中。

我不是一个熟练的 c++ 程序员,并且对终端环境中的编程知之甚少。谁能帮忙给我这个函数的提示或示例代码?谢谢!!

4

2 回答 2

1

如果您在 Linux 终端中,您还可以使用以下代码,

system("clear");
cout<<"\b";    
cout<<Your_Number;

// Repeat this in a loop and call the delay function
于 2013-06-06T10:28:39.613 回答
0

这适用于我的终端(我正在使用 linux)#include #include using namespace std;

int main(int argc, char *argv[]) {
        int i;
        for(i=1;i<100;i++)
        {
                cout<<"\b\b\b"<<i;
                cout.flush();
                sleep(1);
        }
        return 0;
}
于 2013-06-06T12:23:50.830 回答