进度条c ++

时间:2017-07-08 14:10:25

标签: c++ windows console-application

我正在创建一个简单的服务器控制台应用程序。此服务器适用于Windows。

我想在服务器向客户端发送文件时创建一个进度条并打印它。但我不知道如何使用winapi实现它。

有人可以解释一下吗?

1 个答案:

答案 0 :(得分:2)

您可以使用回车符(\ n \ n)在控制台的同一行上书写。使用这种技术,您基本上可以覆盖旧的进度,打印新的进度,从而导致"移动"进度条。这可以独立于任何api,只需使用c ++,它就可以在Windows控制台上运行。

int barLength = 30;
int pos = progress * barLength;

std::cout << "[";
for(int i=0; i != barLength; ++i)
{
    if(i < pos)
        std::cout << "#";
    else
        std::cout << " ";
}
std::cout << "]\r";

您可以获得概念并根据您的需求调整外观。 只需将进度值传递为double(100%= 1.0)即可。 如果进度是1.0,那么编写一个零件可能很有用,这样就可以在最后用\ n或std :: endl打印一个完整的条。