
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で質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# C言語 3 2022/10/04 15:07
- Visual Basic(VBA) vbaについて 主に以下のような設定をしたいです。 Aブックの表の行数が20未満だったら Bブックの 1 2023/06/08 23:40
- 大学・短大 C言語線形リストの問題です 3 2022/12/22 00:45
- その他(プログラミング・Web制作) Windowsのマクロプログラムで、こんなことできますか? 3 2022/06/28 14:30
- C言語・C++・C# C言語について。 7 2023/01/26 16:42
- HTML・CSS WEBサイトの構築。表示データとWEBデザインを分離する考え方を専門用語・業界用語では何と言うか? 8 2022/09/27 09:16
- その他(プログラミング・Web制作) Pythonを用いたフラッシュ暗算ソフトの開発に必要なもの 2 2023/01/29 02:22
- 宇宙科学・天文学・天気 AIが答えた方程式 1 2023/02/20 00:12
- その他(プログラミング・Web制作) Pythonで、データファイルと列名ファイルを1つのファイルにしたいです。 1 2023/07/27 20:29
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
1行ずつではなくまとめてファイ...
-
CSVファイルを任意の場所に出力...
-
SPSSで変数リストをエクセル用...
-
【ExcelVBA】UTF-8(BOM無)でC...
-
外国語とCSVについて
-
PDFのプロパティの情報を抽出し...
-
拡張子.vsdをイラストレーター...
-
出力をExcelにすることは可能??
-
SendKeys "^V", True(貼り付け...
-
コマンドライン引数の区別【C言...
-
Excel2000~2003でUTF-8BOM出力
-
VBSでEXCEL⇒CSV変換で日付の書...
-
コマンド(例えばls)の出力結果...
-
印刷時のジョブ名
-
fflush()、setbuf()について
-
シェルコマンドの 2>&1 とはど...
-
アクセス>マクロ>テキスト変換
-
CUIプログラムにドラッグして1...
-
Paiza Cloudです。 どうやれば...
-
Wordマクロで指定したフォルダ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【ExcelVBA】UTF-8(BOM無)でC...
-
テキストファイルに改行コード...
-
コマンド(例えばls)の出力結果...
-
VC++でUTF-8のファイルを出力し...
-
シェルコマンドの 2>&1 とはど...
-
Acccess レポートをグループ別...
-
ファイル形式またはファイル拡...
-
pcap形式データをテキストへ抽出
-
ファイル出力の場所を指定
-
AccessVBA複数レポート条件毎に...
-
外国語とCSVについて
-
VBA でメモ帳へ保存する際の保...
-
サウンド出力のデバイスを選択...
-
C++ fprintf_sの使い方がわからん
-
アプリを実行すると、作成者を...
-
ファイルの文字コードをUTF-8に...
-
1行ずつではなくまとめてファイ...
-
Wordマクロで指定したフォルダ...
-
SendKeys "^V", True(貼り付け...
-
CSVファイルを任意の場所に出力...
おすすめ情報