[解決済み] fflush(stdin)の使用法
2023-03-16 03:33:54
質問
ということで、Googleで検索してみると
fflush(stdin)
を Google で検索すると、それを使用しないように警告している多数の Web サイトが見つかります。しかし、私の CS 教授が授業で教えたのは、まさにこの方法でした。
を使うことがどれほど悪いことなのでしょうか?
fflush(stdin)
? 教授が使っていて、問題なく動作しているように見えるのに、本当に使用を控えるべきでしょうか?
どのように解決するのですか?
単純なことですが、これは未定義の動作です。
fflush
は出力ストリーム上で呼ばれることを意図しているからです。これは C 標準からの抜粋です。
int fflush(FILE *ostream);
ostreamは、出力ストリームまたは 更新ストリームを指します。 最近の操作が入力でなかった場合、fflush関数は fflush関数は、そのストリームの未書き込みの そのストリームのデータは ファイルに書き込まれる。 をファイルに書き込む。 は未定義です。
つまり、これは "どの程度悪い"かという問題ではありません。
fflush(stdin)
は単純に移植性がないので、もしあなたのコードがコンパイラ間で移植可能であることを望むのであれば、これを使うべきではありません。
関連
-
error: 'for' loop initial declaration is only allowed in C99 mode 原因と解決方法
-
警告:符号付き整数式と符号なし整数式の比較 [-Wsign-compare]
-
[解決済み] Valgrind が初期化されていないバイトについて警告する
-
[解決済み] munmap_chunk(): 無効なポインタ
-
[解決済み] Linux Socket write() によるBad File Descriptor C
-
[解決済み] Linuxカーネルにおけるcontainer_ofマクロの理解
-
[解決済み] ソケットアクセプト - "開かれているファイルが多すぎる"
-
[解決済み] C言語では「?」演算子は何をするのですか?
-
[解決済み] C言語における「static」の意味とは?
-
[解決済み] [Solved] subprocess.Popen に文字列を渡すにはどうしたらいいですか(stdin 引数を使用)?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
g++が内部・外部コマンドソリューションとして認識されない、MinGWを初めて使うときの落とし穴
-
コンパイルエラー:可変長オブジェクトが初期化されていない可能性があります。
-
警告:符号付き整数式と符号なし整数式の比較 [-Wsign-compare]
-
[解決済み] flexible array member not at end of structエラーの原因は何ですか?
-
[解決済み] C 言語で const char* を char* に変換するには?
-
[解決済み] C言語の**はどういう意味ですか?
-
[解決済み] C言語でのブーリアン値の使用
-
[解決済み] なぜC言語では構造体を頻繁にtypedefする必要があるのですか?
-
[解決済み] なぜ16進数には0xがつくのですか?
-
[解決済み] C言語で "unsigned long "をprintfする方法は?