[解決済み] なぜ "printf "は何も出力されないのですか?
2022-02-03 15:22:11
質問
でのプログラミングを学んでいます。
C
. なぜここに何も表示されないのか説明してください。
#include <stdio.h>
int main (void)
{
char a[]="abcde";
printf ("%s", a);
}
解決方法は?
多くのシステムで
printf
を呼び出すと、バッファリングされます。
printf
の場合、出力はすぐに印刷されるのではなく、バッファに格納されます。バッファは、改行を出力したときにフラッシュされます (つまり、出力が印刷されます)。
\n
.
どのシステムでも、このプログラムは
\n
プログラムの終了時にバッファがフラッシュされるためです。
一般的には、まだ
\n
のようにします。
printf ("%s\n", a);
すぐに出力を得るための別の方法としては
fflush
を使用してバッファをフラッシュします。manページより。
出力ストリームの場合、fflush() は、すべてのユーザースペース 与えられた出力ストリームまたは更新ストリームのバッファリングされたデータを、ストリームの のような書き込み関数があります。
出典 http://man7.org/linux/man-pages/man3/fflush.3.html
EDIT
Barmar さんの指摘と @Alter Mann さんの引用にあるように、プログラム終了時にバッファをフラッシュすることが要求されます。
引用元: @Alter Mannさん
<ブロッククオートmain関数が元の呼び出し元に戻るか、exit関数が呼び出されると、プログラムが終了する前に、開いているすべてのファイルが閉じられます(したがって、すべての出力ストリームがフラッシュされます)。
関連
-
[解決済み】Cコンパイルエラー。"変数サイズのオブジェクトが初期化されていない可能性がある"
-
[解決済み】メモリー・クロバリング・エラー
-
[解決済み】LinuxのI_PUSHに相当するもの
-
[解決済み】C言語で入力が整数型かどうかチェックする
-
[解決済み】エラー:不明な型名'bool'
-
[解決済み】Makefile:1: ***セパレータがありません。停止します。
-
[解決済み] Cプリプロセッサはなぜ "linux "という単語を定数 "1 "と解釈するのですか?
-
[解決済み] printfは、フォーマット文字列の中に改行がないと、呼び出し後にフラッシュしないのはなぜですか?
-
[解決済み] なぜsizeof(x++)はxをインクリメントしないのですか?
-
[解決済み】rand()+rand()で負の数が出るのはなぜ?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C言語で「関数の型が競合しています」と表示される、なぜ?
-
[解決済み】変数の警告が設定されているが使用されていない
-
[解決済み] (.text+0x20): `main'への未定義の参照と関数への未定義の参照
-
[解決済み] struct has no member named
-
[解決済み】C言語で多重定義を防ぐには?
-
[解決済み】argv[]をint型として取得するには?
-
[解決済み】C言語で入力が整数型かどうかチェックする
-
[解決済み】MPI通信でMPI_Bcastを使用する場合
-
[解決済み】whileループの時間複雑性(Big O)はどうやったらわかるの?
-
[解決済み] printfは、フォーマット文字列の中に改行がないと、呼び出し後にフラッシュしないのはなぜですか?