我正在创建一个简单的服务器控制台应用程序。此服务器适用于Windows。
我想在服务器向客户端发送文件时创建一个进度条并打印它。但我不知道如何使用winapi实现它。
有人可以解释一下吗?
答案 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打印一个完整的条。