在C/C++程序测试中,有时需要将大量程序信息通过终端输出打印,而将信息保存为日志文件更便于程序测试和debug,下面记录两种简单方法实现重定向打印信息到文件中
在linux系统下,可以直接使用终端命令重定向程序输出到文件中 (推荐)
./testOut2File > ./log.txt
上述命令中./testOut2File为可执行文件(后面可跟程序命令行参数),">"表示重定向输出到./log.txt文件中
使用"cstdio"头文件中的freopen()函数与fclose()函数
#include <iostream>
#include <cstdio>
int main() {
// 重定向标准输出到 output.log
freopen("./log.txt", "w", stdout);
std::cout << "Hello, World!" << std::endl;
std::cout << "This is a test." << std::endl;
// 关闭文件
fclose(stdout);
return 0;
}
需要注意的是需要在main函数的最后使用fclose(stdout)将输出流恢复,否则可能导致程序崩溃。