ユーザーが3つの整数を入力するプログラムを作成しようとしていて、別の関数がその入力が有効であるかどうかをチェックしています。入力が有効でない場合、ユーザーは3つの新しい番号を入力する必要があります。私はこのコードを実行すると ユーザー入力を受け取り、関数が有効かどうかを確認する
#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);
}
はしかし、3つの有効な整数を入力した後は何も、端末に表示されず、コードは6つの整数を入力した後に終了します。 (そのコードは、問題は私に教え見つける必要があると私はそれを投稿する場合は、main関数内の他の機能とコードがあります。)
なぜ読み込み変数を関数に渡してから、別の3つの数値を読みますか? – mame98