質問: eclipse + CDTでC++言語をやっているのですがどうしても解決しない問題があるのでご質問させていただきます。 int main(void) { char str[80]; printf("文字列を入力してください:"); gets(str); printf("入力された文字列は%sです", str); return 0; } 普通なら 文字列を入力してください:{ キーボードから入力された文字列 } 入力された文字列は{ キーボードから入力された文字列 }です というようにprintf->gets->printfという処理となると思うのですが eclipseのコンソールでは { キーボードから入力された文字列 } 文字列を入力してください:入力された文字列は{ キーボードから入力された文字列 }です というようにgets->printf->printfという処理となってしまいます。 何か設定をしなければいけないのでしょうか?よろしくお願いします。 【開発環境】 Windows Pro eclipse C/C++ Development Tools 3.3.1 MinGW-5.1.3 GDB-5.2.1-1 MSYS-1.0.10
回答: 処理系に依存した話だと思いますが、出力がキャッシュされてしまっているせいだと思います。 ``` char str[80]; printf("文字列を入力してください:"); fflush(stdout); gets(str); printf("入力された文字列は%sです", str); return 0; ``` のようにしてみてどうでしょうか。