scanfは使ってはだめ?
Posted: 2008年11月14日(金) 00:53
scanfは使ってはダメだとよく聞きます。
オーバーフローは
char str[10];
scanf("%9s",str);
のようにすれば防げるのでしょうけど、
たまったバッファはどうやってクリアしたらいいのですか?
fflushは未定義になるので使ってはダメなのですか?
整数を入力させようとした時、
int a;
scanf("%d",&a);
printf("%d\n",a);
scanf("%d",&a);
printf("%d\n",a);
に対して
120s1
みたいに入力すると
120
120
と表示されてしまいます。
キーボードから正しく入力させるにはどうしたらいいのでしょうか?
getcharを使うのでしょうか?
環境は一応問わないものとします。
オーバーフローは
char str[10];
scanf("%9s",str);
のようにすれば防げるのでしょうけど、
たまったバッファはどうやってクリアしたらいいのですか?
fflushは未定義になるので使ってはダメなのですか?
整数を入力させようとした時、
int a;
scanf("%d",&a);
printf("%d\n",a);
scanf("%d",&a);
printf("%d\n",a);
に対して
120s1
みたいに入力すると
120
120
と表示されてしまいます。
キーボードから正しく入力させるにはどうしたらいいのでしょうか?
getcharを使うのでしょうか?
環境は一応問わないものとします。