こんにちは、私のコードのこの部分。入力された値が基数2かどうかをチェックします。 整数値を入力すると動作します。しかし、私は文字の入力を確認するコードを取得したい。どうやってやるの?入力がCであるかどうかを確認する方法は?
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main()
{
int DataForBase1,DataForBase1A,CheckForBase1;
printf("For disk1 enter data in base 2: ");
scanf("%d",&DataForBase1);
DataForBase1A=DataForBase1;
while(DataForBase1!=0)
{
CheckForBase1=DataForBase1%10;
if((CheckForBase1!=0) && (CheckForBase1!=1))
{
printf("ERROR: This is invalid input for base 2\n");
printf("For disk1 enter data in base 2: ");
scanf("%d",&DataForBase1);
}
else
DataForBase1=DataForBase1/10;
}
system("pause");
return 0;
}
そして、それはCが多くの[文字分類機能]を持っていることを良いことだ(http://en.cppreference.com/w/c/string/byte#Character_classification)を検討してください。 ['scanf'](http://en.cppreference.com/w/c/io/fscanf)の正しい書式を使用すると助けになるかもしれません。 –
ユーザは2進数を入力したいので、一度に1文字を読み込む 'for'ループを書くのが最も簡単でしょう。そして' 0 'か '' 1 'のどちらかをチェックします。 – user3386109
'scanf()'ではなく 'fgets()'を使うことを考えますか? – chux