C/C++プログラムのテストでは、大量のプログラム情報をターミナル経由で出力・印刷する必要がある場合があり、その情報をログファイルとして保存しておくとプログラムのテストやデバッグに便利です。印刷された情報をファイルにリダイレクトします
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) を使用する必要があることに注意してください。そうしないと、プログラムがクラッシュする可能性があります。