system(do_this); // which executes an external program to output a phrase on the screen
printf("=My taxes");
出力から '\ n' を削除しますプログラム
500 $
=私の税金が
予想される出力:
500 $ =私の税金
私はdo_this
で実行中のコードを制御していないので、'\n'
が自動的に出力されます。
system(do_this); // which executes an external program to output a phrase on the screen
printf("=My taxes");
出力から '\ n' を削除しますプログラム
500 $
=私の税金が
予想される出力:
500 $ =私の税金
私はdo_this
で実行中のコードを制御していないので、'\n'
が自動的に出力されます。
に変更し、それをお使いのシステムコールが
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など広く使われているすべてのオペレーティングシステムを含む)で動作します。
別のオプションは、これは
system("a.out | awk '{ printf(\"%s\",$0); }'");
標準的な方法ではありません。おそらくいくつかの特定のコンソール機能では、Cやその標準ライブラリの一部ではありません。 –
'system()'ではなく、 'popen()'などを使って出力をキャプチャして処理することができます。 –