私はこのコードを持つプログラムを持っています:
#include<stdio.h>
main(){
int input;
char g;
do{
printf("Choose a numeric value");
printf(">");
scanf("\n%c",&input);
g=input-'0';
}while((g>=-16 && g<=-1)||(g>=10 && g<=42)||(g>=43 && g<=79));
}
基本的にASCII操作を使用して、プログラムが数値のみを受け入れるようにします。「0」にはデフォルトで値48が与えられます... ASCII値-48は、上記の数値の範囲を示します(whileステートメント内)
とにかく、ユーザーが数字とアルファベットを入力するときはいつでも:
abr39293afakvmienb23
プログラムは:a、b、r ..を無視しますが、最初の入力として「3」を取ります。abとrの場合、doループの下のコードが繰り返されます。したがって、上記の例では、次のようになります。
Choose a numeric value
>Choose a numeric value>
Choose a numeric value
>3
これを止める方法はありますか?\ n%cを使用して文字をスキャンし、空白を考慮してみましたが、うまくいきませんでした:(
助けてください
どうもありがとうございます !