次のソースコードをVC++で実行したところ、入力の表示ができませんでした。
でも、無限ループを削除すると、正常に表示されます。
非常に基本的な質問かもしれませんが、理由がわかりません。
ご存知でしたら教えてください。よろしくお願い致します。
#include <iostream.h>
int main()
{
char ss[80];
cout << "何か入力してください:";
cin >> ss;
cout << "入力したのは[" << ss << "]です\n";
for(;;)
{
}
}
No.1ベストアンサー
- 回答日時:
cout 内の出力バッファに溜まったままになっているように思えます。
> cout << "入力したのは[" << ss << "]です\n";
これを:
cout << "入力したのは[" << ss << "]です" << endl;
もしくは
cout << "入力したのは[" << ss << "]です\n" << flush;
としてみてください。
ご回答ありがとうございます。
ご指摘のとおり、endlかflushを使うと上手くいきました。
でも、無限ループを入れると、cout内の出力バッファに溜まったままになるのはどうしてなのでしょうか?
あつかましいとは思いますが、できればご教授ください。m(__)m
No.3
- 回答日時:
> 無限ループを入れると、cout内の出力バッファに溜まったままになるのはどうしてなのでしょうか?
バッファ内のデータは、次のようなタイミングで出力されます。
・バッファが一杯になって、さらにデータが送り込まれた時。
・プログラムを終了する時(出力ストリームを閉じる時)。
・flush等で明示的に出力が指示された時。
ご質問のプログラムでは、まだバッファに余裕があるのです。しかも、プログラムは終わらない。
明示的に出力しているわけでもない。
というわけで、表示されません。
ご回答いただきありがとうございます。
なるほど、coutで出力したい場合は、明示的に指示しなければならないのですね。
ためしにcoutをprintfに置き換えてみましたところ、無限ループがあっても入力した内容を表示しました。
これはprintfだと強制的に書き出しを行っているからなのでしょうか。
ストリームについてまだまだ知らないことが沢山あるので、これから勉強していこうと思います。
どうもありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C++のcinの動作 5 2023/02/26 00:13
- C言語・C++・C# プログラミングの問題です。至急教えてください。 /***から***/の部分をプログラミングにしてほし 1 2022/10/13 11:48
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# C++初心者です stirng 2 2022/09/20 20:43
- C言語・C++・C# このプログラミングの問題を教えて欲しいです。 キーボードから整数kを入力し、kが配列aの中に何個存在 2 2022/12/19 22:50
- C言語・C++・C# 至急教えてください。プログラミングの問題です。 最初に正の整数nの入力を受け付け、次に分数の分子と分 1 2022/07/19 17:03
- C言語・C++・C# 至急教えてください。プログラミングの問題です。 malloc関数を使ってください!お願いします! 最 1 2022/07/21 09:28
- C言語・C++・C# 至急お願いします。プログラミングの問題です。 最初に正の整数nの入力を受け付け、次に分数の分子と分母 3 2022/07/19 17:09
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PS4コントローラーをPCでゲーム...
-
4Kの外部モニターに出力すると...
-
COBOLのMOVEで桁数が異なる場合
-
cout と cerrの違い
-
c言語でグラフをつくる
-
CrystalReportの文字列の折返し...
-
プログラムについての質問です...
-
MMDでavi出力が出来ない
-
printfとputcharの違いは
-
ACCESS クエリ→フォーム...
-
無限ループで出力ストリームが...
-
テキストファイルから特定の文...
-
C# 標準出力のencodingをutf8に...
-
Accessの値をExcelに縦横入替出...
-
gnuplotで複数のwindowを開くに...
-
VBAのExecメソッドで画面を非表...
-
Mac版 Excel VBA PDF出力フォル...
-
プログラミングの問題です。至...
-
wsprintfで浮動小数を扱うには?
-
makeで文字化けする。migwのmak...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PS4コントローラーをPCでゲーム...
-
4Kの外部モニターに出力すると...
-
printfとputcharの違いは
-
VBA レジストリの値の読み方に...
-
プログラムについての質問です...
-
MMDでavi出力が出来ない
-
cout と cerrの違い
-
詳しくないので、どなたかお教...
-
COBOLのMOVEで桁数が異なる場合
-
ACCESS クエリ→フォーム...
-
VBAでテキスト出力時のスペース...
-
OBS配信すると、マイクが途切れ...
-
PS5をMacBookProに出力したいの...
-
コンセントの電力は入力と出力...
-
アクセスでエクセルに出力する...
-
printfの書式%.*s
-
Windows Formアプリからコンソ...
-
coutで出力した文字を消去する...
-
VBAで有効数字の設定
-
VBAのExecメソッドで画面を非表...
おすすめ情報