6

プログラムの結果をテキスト ファイルに保存する方法があるかどうか疑問に思っています。./a.out > output.txt のようなことを実行できることはわかっていますが、私のプログラムでは、./a.out と入力した後、再度 TIME を求めるプロンプトが表示されます。入力アルゴリズムが実行され、結果が出力されます。

プログラムは一定期間ステージを出力し、基本的に私の出力は次のようになります。

time 0:00 stage 1

time 0:05 stage 1

...

time 2:05 stage 2

出力をテキスト ファイルに保存するにはどうすればよいですか?

4

4 に答える 4

8

したがって、入力もリダイレクトします。

./a.out < input.txt > output.txt

どこinput.txtに時間が含まれています。

于 2012-11-23T08:15:03.143 に答える
2

それを行う1つの方法は、結果をに出力することですstderr

fprintf(stderr, "time %d:....");

そしてリダイレクトstderrするoutput.txt

./myprog 2> output.txt

注: これは、ファイルを開きたくない場合の回避策ですstderr。エラー以外には使用したくありません。

于 2012-11-23T08:24:23.537 に答える
1

1 つの解決策は、TIME パラメーターを引数として渡し、./a.out time > output.txt を使用してファイルに出力することです。

于 2012-11-23T08:15:12.660 に答える
0

最も簡単な方法は、 sudo_O があなたに言ったことです(すべてのOSで機能します)

./a.out <in.txt >out.txt. 

C でこれを行う場合は、freopen() ( http://www.cplusplus.com/reference/clibrary/cstdio/freopen/ )を使用します。

 freopen ("myoutput.txt","w",stdout);
 freopen ("myinput.txt","r",stdin);

これにより、stdout が myoutput.txt にリダイレクトされるため、すべての printfs は "myoutput.txt" に移動します。また、stdin を myinput.txt にリダイレクトするため、すべての scanfs は "myinput.txt" から読み取ります。

于 2012-11-23T11:30:34.860 に答える