728x90
반응형
C++에서 기본적으로 제공하는 Console에서 한 줄만 지우는 것은 불가능한 것 같다. Console 전체 지우기는 제공하나 한 줄 지우기는 존재하지 않는다. 그래서 '\r'을 이용하여 공백 문자를 채워 넣어서 지우고 다시 써보았다.
공백 문자를 채워서 한 번에 print를 하는 방법도 있을 것 같다.
#include <thread>
#include <chrono>
#include <iostream>
using namespace std;
char buffering_char[4] = { '-', '\\', '|', '/' };
int main()
{
for (int i = 0; i < 3; i++)
{
std::chrono::system_clock::time_point start = std::chrono::system_clock::now();
int count = 0;
string str_out{ "running ..." };
while (count < 10)
{
std::chrono::duration<double> sec = std::chrono::system_clock::now() - start;
if (count != static_cast<int>(10 * sec.count()))
{
cout << "[" << buffering_char[count % 4] << "] " << str_out.c_str() << "\r";
count = 10 * sec.count();
str_out += ".";
}
}
for (int i = 0; i < str_out.size() + 3; i++)
cout << " ";
cout << "\r";
cout << "done!" << endl;
}
return 0;
}
728x90
반응형
'Program Language > C & C++' 카테고리의 다른 글
[C++] Template Aliases (0) | 2022.02.18 |
---|---|
[C++] Function Template (0) | 2022.02.17 |
[C++] Class Template (0) | 2022.02.10 |
[C++] Simple String 템플릿 (0) | 2022.02.10 |
[C++] std::chrono로 시간 측정하기 (0) | 2022.01.21 |