2011-11-15 13 views
2
system(do_this); // which executes an external program to output a phrase on the screen 
printf("=My taxes"); 

出力から '\ n' を削除しますプログラム

500 $

=私の税金が

予想される出力:

500 $ =私の税金

私はdo_thisで実行中のコードを制御していないので、'\n'が自動的に出力されます。

+0

標準的な方法ではありません。おそらくいくつかの特定のコンソール機能では、Cやその標準ライブラリの一部ではありません。 –

+7

'system()'ではなく、 'popen()'などを使って出力をキャプチャして処理することができます。 –

答えて

5

に変更し、それをお使いのシステムコールが

system("a.out"); 

されていることではなく、改行に

を除去するためにutilsのを利用するために、あなたのシステムコールを変更する必要がありますです仕事:

system("program | tr -d '\012\015'"); 
printf("=My taxes\n"); 

プログラムは実行したいプログラムです。 trコマンドは、プログラムの出力からすべてのCRおよびLF文字(コード015および012の8進数)を削除します。ソリューションはプログラムは1行(あなたの税金)を出力するだけで、行末CR、LF、CR + LF、LF + CR(MacOS、Linux、Windowsなど広く使われているすべてのオペレーティングシステムを含む)で動作します。

1

別のオプションは、これは

system("a.out | awk '{ printf(\"%s\",$0); }'"); 
関連する問題