1

たくさんのprintfステートメントがあり、それらすべてをテキストファイルに書き込みたいと思います。それぞれの後にfprintfステートメントを追加するだけでよいことに気付きましたが、関数などのより良い方法はありますか、それとも独自の関数を作成する必要がありますか?これはおそらく標準的な手順だと思います。それが何と呼ばれているのかわからないので、グーグルで答えを見つけるのは難しいです。

編集:わかりやすくするために、出力を通常どおりに端末に送信し続けるだけでなく、同時にファイルに出力することもできます。何人かの人々がbashコマンドを提案しています。それらはいつ実行されるべきですか?プログラムが実行された後?

4

4 に答える 4

4

UNIXタイプのボックスを使用している場合は、出力をパイプでつなぐことができます。これにより、出力が標準出力ファイルteeに配信されます。

myProg | tee /tmp/myProg.out

標準エラーで同じことを行う方法もあります。

( myProg 2>&1) | tee /tmp/myProg.out_and_err

もちろん、これは使用しているシェルによって異なりますが、最も一般的なシェルでも機能するはずです。

于 2012-09-07T04:00:33.183 に答える
3

プログラムの実行時に、>bash演算子を使用して、プログラムの出力をテキストファイルにリダイレクトします。

IE

myprogram > myfile.txt

これにより、通常画面に出力されるすべてのものがprintfmyfile.txtという名前のファイルに保存されます。

于 2012-09-07T03:57:45.900 に答える
2

stdoutをファイルにリダイレクトするのはどうですか?

int main ()
{
  freopen ("myfile.txt","w",stdout);
  printf ("This sentence is redirected to a file.");
  fclose (stdout);
  return 0;
}

コードサンプルは、freopenのc++リファレンスからのものです。

于 2012-09-07T04:18:28.097 に答える
0

あなたができること:./executable > outputfile 2>&1または./executable &> outputfile

これにより、標準出力と標準出力の両方をにリダイレクトできますoutputfile

于 2012-09-07T05:07:32.663 に答える