私はプログラミングをC
で学んでいます。ここに何も印刷されない理由を説明できますか?前もって感謝します。多くのシステムprintf
で"printf"はなぜ機能しないのですか?
#include <stdio.h>
int main (void)
{
char a[]="abcde";
printf ("%s", a);
}
私はプログラミングをC
で学んでいます。ここに何も印刷されない理由を説明できますか?前もって感謝します。多くのシステムprintf
で"printf"はなぜ機能しないのですか?
#include <stdio.h>
int main (void)
{
char a[]="abcde";
printf ("%s", a);
}
もし出力が代わりにすぐに印刷されたバッファに置かれるprintf
を呼び出すすなわちとき、バッファリングされます。改行を印刷すると、バッファはフラッシュされます(別名出力が印刷されます)\n
。
プログラムが終了したときにバッファがフラッシュされるので、すべてのシステムで、プログラムは、\n
がなくても印刷されます。すぐに出力を得るための別の方法は、バッファをフラッシュするfflush
を呼び出すことです
printf ("%s\n", a);
:
通常、あなたはまだのよう\n
を追加します。 manページから:出力ストリームの場合
、fflushは()ストリームの 基礎となる書き込み機能を経由して与えられた出力または更新ストリームのためのすべてのユーザ空間 バッファされたデータの書き込みを強制します。
出典:http://man7.org/linux/man-pages/man3/fflush.3.html
EDIT
@Barmarが指摘して@Alterマンによって引用されたとして、プログラムの終了時にバッファがフラッシュされることが必要です。 @Alterマンから
引用:
主な機能は、プログラムの終了前に(したがって、すべての出力ストリームがフラッシュされる)元の呼び出し側に返す、またはexit関数が呼び出された場合、開いているすべてのファイルが閉じている場合。
は、文字列またはフォーマットに "\ n" を追加を参照してください。 - >> 'printf("%s \ n "、a);' – wildplasser
なぜ印刷されませんか? –
'fflush(stdout);' 'printf'の後に –