07/08/18 04:24:30
URLリンク(www9.plala.or.jp)
> scanf()で読み込み不一致が起こる問題では、上記 「atoi()、atol()、atof()」を使って回避します。
> 読み込み不一致は、scanf()を for や while などのループの中で用いた場合、入力バッファに
> 残されたデータを永遠に受け付けないため無限ループになってしまい意外に深刻な問題となります。
> そのためデータを一旦、scanf("%s", ○)や gets()を用いて文字列として入力し、それから上記の
> 変換関数を用いて期待するデータ型に変換するのです。
int i = 0;
char a[20];
while(i != -1) {
printf("整数値を入力してください(終了条件:-1)\n");
scanf("%s", a);
i = atoi(a);
}