Hallo diesen Teil meines Codes. Es prüft, ob der eingegebene Wert in der Basis 2 ist oder nicht. Ich arbeite, wenn ich Ganzzahl-Wert eingeben. Aber ich möchte den Code auf Zeicheneingaben überprüfen lassen. Wie kann ich das machen?Wie überprüft man, ob die Eingabe Buchstabe C ist?
#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;
}
Dann ist es gut, dass C viele [character Klassifikationsfunktionen] (http://en.cppreference.com/w/c/string/byte#Character_classification) hat. Es kann auch hilfreich sein, das richtige Format für [scanf] (http://en.cppreference.com/w/c/io/fscanf) zu verwenden. –
Da der Benutzer eine Binärzahl eingeben soll, ist es wahrscheinlich am einfachsten, eine For-Schleife zu schreiben, die jeweils ein Zeichen liest und überprüft, ob es "0" oder "1" ist. – user3386109
Würden Sie 'fgets()' anstelle von 'scanf()' in Erwägung ziehen? – chux