En las pruebas de programas C/C++, a veces es necesario generar e imprimir una gran cantidad de información del programa a través de la terminal, y guardar la información como un archivo de registro es más conveniente para la prueba y depuración del programa. Los siguientes dos métodos simples se registran para redirigir la información impresa al archivo
En el sistema Linux, puede usar directamente el comando de terminal para redirigir la salida del programa a un archivo (recomendado)
./testOut2File > ./log.txt
En el comando anterior, ./testOut2File es un archivo ejecutable (puede ser seguido por los parámetros de la línea de comandos del programa), y ">" significa redirigir la salida al archivo ./log.txt
Use la función freopen() y la función fclose() en el archivo de encabezado "cstdio"
#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;
}
Cabe señalar que fclose(stdout) debe usarse al final de la función principal para restaurar el flujo de salida, de lo contrario, el programa puede fallar.