C/C++ でログファイルを書き込む 質問する

C/C++ でログファイルを書き込む 質問する

C++ でログ ファイルを作成したいと考えています。特定の処理を行っているため、処理する対象のプロパティのログを保持する必要があります。これにより、このログ ファイルに戻って、特に興味のあるもののプロパティを確認できるようになります... これを実現するのに誰か手伝ってくれませんか?

ベストアンサー1

ログ記録の標準的な方法は (私の経験では) stdout または stderr ストリームを使用することです。C++ でこれらを使用するには、iostream をインクルードし、以下のように使用する必要があります。

#include <iostream>

int main(int argc, char* argv[])
{
  using std::cout;
  using std::cerr;
  using std::endl;

  cout << "Output message" << endl;
  cerr << "Error message" << endl;
}

しかし、これは出力に印刷するだけであり、通常は端末に出力されます。これらの標準ストリーム メソッド (非常に読みやすい) を使用してファイルに出力する場合は、何らかの方法で出力をリダイレクトする必要があります。これを行う 1 つの方法はfreopen、cstdio が提供する関数を使用することです。これはファイルを開き、指定されたストリームをそのファイルに移動します。ここドキュメント用。例は次のようになります。

#include <iostream>
#include <cstdio>

int main(int argc, char* argv[])
{
  using namespace std;
  freopen( "output.txt", "w", stdout );
  freopen( "error.txt", "w", stderr );

  cout << "Output message" << endl;
  cerr << "Error message" << endl;
}

(簡潔にするためにそこに変更しましたusing namespace std;。)

stdout標準出力ストリーム( によって使用される) を output.txt (書き込みモード) に移動し、 ( によって使用される) を error.txt にも書き込みモードでcout移動します。stderrcerr

うまくいけば、これがうまくいくでしょう。

おすすめ記事