在编程中我们经常遇到十分耗时的处理过程,如果不在处理过程中输出一点东西,总觉得程序是不是已经死机了。
但是如果像下面左边这样全部输出,就又觉得过于冗余。理想的是像右边这样。
那怎么达到右边的效果呢,其实非常简单只要利用回车\r 这个符号就可以了。
回车 \r 本义是光标重新回到本行开头,用这个符号就可以将下次输出替代上次输出,起到动态的效果。
要注意的是,如果这一行末尾有换行,\r就起不到我们想要的效果了。
代码如下:
#pragma warning(disable:4996)
#include <iostream>
#include <ctime>
#include <windows.h>
#include <string.h>
using namespace std;
int main() {
while (true) {
Sleep(1000);
time_t rawtime = time(0);
char* t = ctime(&rawtime);
t[strlen(t) -1] = '\0'; // 用'\0'覆盖最后一个\n换行字符,注释掉变为顺序输出
cout<<"\r "<<t;
}
return 0;
}