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
gets() の前に fflush(stdout) する必要があります。
それで期待通りの動作をするはずですが、gets() は使ってはいけない関数だし、そもそもそのプログラムは C++ 言語ではなく C 言語です。
期待通りの結果が得られました。ありがとうございました。
処理系に依存した話だと思いますが、出力がキャッシュされてしまっているせいだと思います。
char str[80];
printf("文字列を入力してください:");
fflush(stdout);
gets(str);
printf("入力された文字列は%sです", str);
return 0;
のようにしてみてどうでしょうか。
期待通りの結果が得られました。ありがとうございました。
期待通りの結果が得られました。ありがとうございました。