2012-04-23 8 views
3

私は以下のような配列にprintfの出力を保存したい:私は戻ってそれらを呼び出すとき、彼らはただ0、awkでシステム出力を取得するには?

op[i] = system("printf \"%d\\n\" \"" SQ substr($1,i,1) "\"") 

けど?!

あなたはその理由を知っていますか?あなたは

op[i] = sprintf("%d\n", SQ substr($1,i,1)) 

外部コマンドからの出力をキャプチャする方法たい

+0

'システムは、()'ので、それはあなたが買ってあげるものだ、0を返します。実際の出力を文字列として取得するには、ストリームを使用する必要があります。また、printfはシステムコマンドですか? printfのC++関数を使用しようとするなら、あなたは 'system()'を使うべきではありません。 – Griffin

+0

awkは独自のprintf関数を持っているか、 'string' printf、つまり 'ar [0] = sprintf(.....) 'を使用できます。 – shellter

+0

@Griffin:[printf'](http:// pubs .opengroup.org/onlinepubs/9699919799/utilities/printf.html)コマンドは、 'print'()のようなフォーマット文字列の制御下で、データを標準出力にエコーするという点で、' echo'のようなビットです関数)。 –

答えて

関連する問題