C/C++重载终端输出到文件txt

在C/C++程序测试中,有时需要将大量程序信息通过终端输出打印,而将信息保存为日志文件更便于程序测试和debug,下面记录两种简单方法实现重定向打印信息到文件中

  1. 在linux系统下,可以直接使用终端命令重定向程序输出到文件中 (推荐)

./testOut2File > ./log.txt

上述命令中./testOut2File为可执行文件(后面可跟程序命令行参数),">"表示重定向输出到./log.txt文件中

  1. 使用"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)将输出流恢复,否则可能导致程序崩溃。

猜你喜欢

转载自blog.csdn.net/weixin_44576482/article/details/128667501