Ich versuche ein Programm zu erstellen, in dem der Benutzer drei Ganzzahlen eingibt, und eine andere Funktion prüft, ob ihre Eingabe gültig ist. Wenn die Eingabe nicht gültig ist, muss der Benutzer drei neue Zahlen eingeben.Benutzereingaben nehmen und eine Funktion verwenden, um zu prüfen, ob sie gültig ist
#include <stdio.h>
int sanitizedInput(int a, int b, int c)
{
if(scanf("%d", &a)==0)
{
printf("Not a number\n");
return 1;
}
else if(scanf("%d", &b)==0)
{
printf("Not a number\n");
return 1;
}
else if(scanf("%d", &c) == 0)
{
printf("Not a number\n");
return 1;
}
else
return 0;
}
int main()
{
int a;
int b;
int c;
int check = 1;
do
{
check = 0;
printf("Enter a number:");
scanf("%d",&a);
printf("Enter a number:");
scanf("%d",&b);
printf("Enter a number:");
scanf("%d",&c);
check = sanitizedInput(a,b,c);
}while(check);
}
Jedoch, wenn ich diesen Code ausführen, nachdem drei gültige Zahlen eingeben nichts zeigt im Terminal und der Code endet erst nach sechs ganzen Zahlen eingeben. (Es gibt auch andere Funktionen und Code in der Hauptfunktion, wenn dieser Code notwendig ist, das Problem sagen Sie mir zu finden und ich werde es posten.)
Warum übergeben Sie Lesevariablen an Ihre Funktion und lesen Sie dann einfach weitere 3 Zahlen? – mame98