teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

回答内容の根拠を追記

2015/02/16 00:51

投稿

yohhoy
yohhoy

スコア6191

answer CHANGED
@@ -1,4 +1,6 @@
1
1
  (解決済みの質問かと思いますが)
2
2
  `cout << "moji:";` を `cout << "moji:" << flush;` とすると、期待通り動きますか?
3
3
 
4
- 基本的には maisumakun さんが指摘される通り、一つのプログラム中でC++の`cin`/`cout`と、Cの`scanf`/`printf`系を混在させない方がよいですね。
4
+ 基本的には maisumakun さんが指摘される通り、一つのプログラム中でC++の`cin`/`cout`と、Cの`scanf`/`printf`系を混在させない方がよいですね。
5
+
6
+ **追記**:出力ストリーム`cout`に対して`<< flush`操作を行うと、その時点での未出力なバッファリング内容が確実に出力(出力バッファのflush/フラッシュ操作)されます。C++ライブラリが提供する`cin`と`cout`とでは特別な関連付けが行われており、`cin`からの読み込み操作を行うと、自動的に`cout`のflush操作が行われるという仕様になっています。`cout`と`scanf`を組み合わせた場合は、この関連付けによる自動flush操作が働きませんから、手動で`<< flush`してみたらどうでしょう?という回答をつけました。