调试时常常使用cout来实时输出信息,但若信息过多过长又需要不停滑动滚轮来查看,非常麻烦;
而采用“输出信息到文本文件,并用另一个exe读取以实时显示”的办法就非常方便快捷地将调试信息分到了多个窗口输出,很方便查看,而且不需要调用一堆复杂的函数新建窗口。
示例代码:
用来输出信息到文本文件的:
#include<iostream>
#include<fstream>
using namespace std;
int main()
{
ofstream out;
out.open("file.txt",ios::out);
for(int i=0;; ++i)
{
out.seekp(0);
out<<i<<endl;
}
out.close();
return 0;
}
用来实时读取该文本文件,并实时显示内容的:
#include<iostream>
#include<fstream>
#include<windows.h>
using namespace std;
int main()
{
ifstream in;
in.open("file.txt",ios::in);
while(1){
in.seekg(0);
cout<<in.rdbuf();
Sleep(50);// 防止cls闪屏
system("cls");
}
in.close();
return 0;
}
效果:
实时读取文本文件效果
以批处理脚本改进版:
另:
若使用了git代码管理,txt文件的更新可能也会被跟踪,导致部分功能有时可能无法正常进行(如revert)。解决方法为在.gitignore中添加忽略txt后缀文件的规则:
若还是跟踪了txt文件的更新,就把txt文件删除一下就好了