半角アルファベットの小文字をscanf関数を使って入力し、
入力された文字列が上の条件に当てはまらない場合(数字、大文字などが使用されたとき)
入力 → エラーなら一度"error"と表示し、再度入力
という処理を実装したく、
下記のようなコードを作成しました。
#include <stdio.h>
int main(){
char Input[16];
while(1){
if(scanf("%[a-z]", Input) != 1){
printf("error\n");
}else{
break;
}
}
}
数字や大文字を入力した際に
というように延々とエラーメッセージが表示され続けます。
何故無限ループ(?)が起こってしまうのでしょうか?
また、どのように回避したらいいのでしょうか?
ご教示お願いします。