私のプログラムのこんにちは、私は別の関数の複数の配列の入力を検証する必要があります。つまり、配列があるとしましょう:バーコード[MAX]。ユーザーにバーコードをこの配列に入力してもらいたいので、多くのバーコードと同様に、バーコード[MAX]変数に入力します。この入力を検証して、適切な形式であることを確認する必要があります。つまり、基本的に0より大きく、末尾の文字はありません。そして、この検証は別の関数から行う必要があります。
したがって、次のようになります。
for (i = 0; i < MAX; i++)
{
printf ("Barcode: ");
barcode[MAX] = validate();
printf ("Price: ");
price[MAX] = validate();
}
これはメイン関数にあり、ユーザーにバーコード/価格を入力するように呼び出し、別の関数で入力を検証します。しかし、配列入力の検証関数を作成する方法がわかりません。私は以前に単純な変数のために1つ書いたことがありますが、配列は私を混乱させます。以前の検証コードは次のようなものでした。
do
{
rc = scanf ("%llf%c", &barcode[MAX], &after);
if (rc == 0)
{
printf ("Invalid input try again: ");
clear();
}
else if (after != '\n')
{
printf ("Trailing characters detected try again: ");
clear();
}
else if ()
{
}
else
{
keeptrying = 0;
}
} while (keeptrying == 1);
しかし、これは配列変数では機能するようには見えません。これは、非配列変数で使用するコードでした。どうすればこれを修正できますか?また、2つの配列は異なるデータ型です。バーコードは長い長い変数であり、価格は二重変数です。