問題タブ [fflush]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
777 参照

fork - xinetd/inetd を使用して、サーバーが fflush() を呼び出す必要があるのはなぜですか?

xinetd (私が読んだもの) 上のすべてのプログラムは、fflush() を呼び出します。なんで?

たとえば、Inetd-ウィキペディア

0 投票する
1 に答える
70 参照

c - fflush 関数は Linux でファイル記述子の数を増やすことができますか?

ファイル記述子が多すぎるため、アプリケーションが終了しました。そこで、gdb を使用してプログラムをデバッグしました。fflush 関数を使用すると、ファイル記述子の数が増加することがわかりました。

例えば:

プロセス ID は 13593 です。変数 pFile はファイル send.dat を指します。

誰か理由を教えてくれませんか?どうもありがとう。

0 投票する
1 に答える
1115 参照

c - c の gets() の前の fflush(stdin)

さて、コードシェフの問題を解決していました(非常に簡単です)。それは簡単に次のように述べています:

-文字列としての質問が与えられ、質問文字列で使用される文字を含まない別の文字列を生成する必要があります。大文字と小文字は同じと見なされます。

-すべてのアルファベットが使用されている場合は、~記号を印刷してください。

入力でエラーをキャッチしたことを除いて、私のロジック全体は正しいです。これは、gets() の前に fflush(stdin) を使用したことが原因でした。なぜこれがエラーだったのか説明してください。残りのコードは無視してください。

問題へのリンク: http://www.codechef.com/problems/NOLOGIC/

間違ったソリューションへのリンク: http://www.codechef.com/viewsolution/3881817

修正されたソリューションへのリンク: http://www.codechef.com/viewsolution/3881827

Pls 注:修正されたコードでは、fflush(stdin) を使用せず、getchar() を使用することのみを変更しました。

0 投票する
2 に答える
698 参照

c++ - fflush とは正確には何ですか?

http://www.cplusplus.com/reference/cstdio/fflush/を読んでいて、それが何を意味するのか興味がありました。ウェブサイトによると、次のように書かれています。

指定されたストリームが書き込み用に開かれている場合 (または更新用に開かれており、最後の i/o 操作が出力操作であった場合)、出力バッファー内の書き込まれていないデータはすべてファイルに書き込まれます。

ファイルへの出力バッファとはどういう意味ですか?

0 投票する
2 に答える
722 参照

c - scanf() 入力チェックの while ループで fflush(stdin) が 2 回実行されるのはなぜですか?

ここでCを学ぶ初心者プログラマー

私のコードの一部はユーザーに数値入力を要求し、入力された値が数値かどうかを確認するために while ループに入り、そうでない場合は while ループが入力をクリアし (無限ループを停止するため)、数値を要求します。また。

問題は、入力をクリアしてから while ループで再度 scanf() を要求すると、明らかに 2 回クリアされ、結果を得るために数値を再度入力する必要があることです。

問題のコードの一部を次に示します。

誰かがこれを行う理由を説明できる場合は、説明するか、続行する方法についてのヒントを教えてください。

どうもありがとう!

0 投票する
1 に答える
551 参照

c - fprintf を何度も呼び出します。fflush はいつ使用する必要がありますか?

あるファイルタイプを別のファイルタイプに変換する簡単な小さなプログラムがあります。fprintf() へのかなりの数の呼び出しがあります (変換するファイルのサイズにほぼ比例して依存します)。私が始めたとき、fflush() への呼び出しはありませんでした。小さなファイル (<10 Kb) では、まったく問題はありませんでした。大きなファイル (>40 Kb) では、fclose() の呼び出しに達すると、全体がクラッシュしました。

それで、バッファをいっぱいにしすぎているのではないかと思ったので、およそ* 512 回の fprintf の呼び出しの後に fflush() の呼び出しを入れました (各呼び出しは 8 ~ 10 文字を出力します)。fclose() を呼び出すと、プログラムは引き続きクラッシュします。

*実際には fprintf の呼び出しをカウントしておらず、プログラムに既にある別のカウントを使用しているため、この数が 512 未満になる可能性があります。

これは私の質問につながります。fflush() はいつ呼び出す必要がありますか? 一定量のデータが fprintf された後に呼び出す必要がありますか? または、私が見逃しているものがありますか?

ありがとう

ちなみに、私は Windows 7 (64 ビット) を使用しており、出力ファイルを "a+" モードで fopen しました。