
C言語にお詳しい方、ご回答お願いします。
fflush関数は、「バッファに格納されているデータを吐き出す。」とあるのですが、具体的にどのような動作をするのでしょうか?
(1)fflush(stdin),fflush(stdout)とそれぞれ記述するとどのような動作をするのか。
(2)データをフラッシュしたいときとは、具体的にどんなときか。(scanfなどで続けてデータの入力を行うこと以外に)
setbuf関数は、「出力バッファをユーザバッファに指定」とあるのですが、具体的にどういう意味なのでしょうか?
(1)setbuf(stdout,buf)、setbuf(stdin,buf)とそれぞれ記述するとどのような動作をするのか。
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
> (1)fflush(stdin),fflush(stdout)とそれぞれ記述するとどのような動作をするのか。
fflush(stdin)とすると動作が未定義になります。したがって、何がおきるか分かりません。
fflush(stdout)の場合は、printf等で出力したけれども、まだバッファにたまっている文字が実際の装置(コンソールやファイルなど)に出力されます。
> (2)データをフラッシュしたいときとは、具体的にどんなときか。(scanfなどで続けてデータの入力を行うこと以外に)
例えば、相手と対話的にやり取りを行う必要がある場合などです。シリアルポート等で通信を行う場合はもちろん、次のようなケースも考えられます。
fputs("入力> ", stdout);
fgets(str, sizeof(str), stdin);
上の例では、"入力> "がコンソールに出力される前にfgetsが入力を求めてしまうかもしれません。そのため、fgetsの前にfflush(stdout);を挿入することで、入力を求める前に"入力> "が確実に出力されるようになります。
なお、「scanfなどで続けてデータの入力を行うこと」に対しては、fflushは何の役にも立ちません。
> (1)setbuf(stdout,buf)、setbuf(stdin,buf)とそれぞれ記述するとどのような動作をするのか。
stdoutまたはstdinが管理するバッファをbufに設定し、フルバッファリングを行います。デフォルトでは、stdoutやstdinがどんなバッファリングを行うかは環境に依存します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ファイル形式またはファイル拡...
-
コマンド(例えばls)の出力結果...
-
シェルコマンドの 2>&1 とはど...
-
ファイル出力の場所を指定
-
CSV形式に変換
-
C言語初心者の質問失礼します。
-
バイナリ形式のXMLファイルを読...
-
C言語でBMPファイルの内容を表...
-
vba ActiveSheet.pasteを使った...
-
OpenDialog1->FileNameについて
-
FTPでputすると空ファイルが出...
-
どんなプログラムを書いても指...
-
「UNCパスはサポートされません...
-
フルパスから最後のディレクト...
-
LSI C-86 v3.30c 試食版について
-
SWTとSwingの違い
-
dataファイルをxtxファイルにす...
-
VB.NETで他のプロジェクトで作...
-
バッファとは何ですか
-
VB6.0で作ったプロジェクトが起...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ファイル形式またはファイル拡...
-
Acccess レポートをグループ別...
-
CSVファイルを任意の場所に出力...
-
テキストファイルに改行コード...
-
コマンド(例えばls)の出力結果...
-
シェルコマンドの 2>&1 とはど...
-
ファイルの文字コードをUTF-8に...
-
(VBA)書式が変更されてしまい...
-
BitBltについて。
-
SendKeys "^V", True(貼り付け...
-
Excel のページを Jpegファイル...
-
【ExcelVBA】UTF-8(BOM無)でC...
-
VB.NETでExcelファイルを出力す...
-
AccessVBA複数レポート条件毎に...
-
raw形式からbmp形式への書き込...
-
Paiza Cloudです。 どうやれば...
-
OCRで起こしたテキスト文字をCS...
-
Wordマクロで指定したフォルダ...
-
C言語での縦方向のファイル出力...
-
VC++でUTF-8のファイルを出力し...
おすすめ情報