初心者な質問ですが…

input:
scanf("%d",&num);

if((snum >= 0) && (snum <= MAXnum)){syori1; プログラム終了;}
printf("error");
goto input:

といった感じで、指定範囲外の数字または文字や記号が入ったら再入力させたいのですが。
数値以外を入れると無限でエラー文が出力されてしまうのですが…なにか対処法はないのでしょうか??