ユーザーが次のように var で区切られた正確に4 つの引数を入力したかどうかを確認することになっている if ステートメントがあります: param1,param2,param3,param4 。問題は、ユーザーが 4 つ以上の入力を行った場合にエラーが返されないことです。彼が4未満を与えた場合にのみエラーを返します。
char input[60];
char a1[42], a2[42], a3[42], a4[1];
printf("Enter info");
fgets(input, 60, stdin);
if (4 != sscanf(input,"%1[^,\n], %1[^,\n], %1[^,\n], %[^,\n]",a1, a2, a3, a4)) {
return printf("Error"),1;
}
else
{
printf("In");
}
理由がわかりません。ご協力いただきありがとうございます