0

実行中にいくつかの printf ステートメントを作成するプログラムを実行するとします。当然、printf コマンドにヒットするたびに印刷されます。それを印刷して「保存」し、プログラムの最後に、印刷する必要のあるすべての行を取得し、並べ替えてから印刷する代わりに、どうすればよいでしょうか。

例えば

Run Program
prints "File1 90"
prints "File2 30"
prints "File3 40"
End Program

Run Program
prints "File1 90" (don't actually print it out)
prints "File2 30" (don't actually print it out)
prints "File3 40" (don't actually print it out)
Take print statements and rearrange them by numerical order, then print
Program prints:
prints "File2 30"
prints "File3 40"
prints "File1 90"

次のようなCプログラム内でUNIXシェルコマンドを使用する必要があると思います sort -k2n,2 -k1,1 myprogram

4

1 に答える 1

1

私が考えることができる1つの方法はstdout、ファイルにリダイレクトすることです

freopen( "file.txt", "w", stdout );

2 番目の列 (?) で並べ替えたいので、引数を指定sortしてファイルをフィードします。-k 2

コマンドについては、このを参照してください。

基本を図解しています。

于 2013-01-24T02:49:32.390 に答える