double をファイルから個別の配列にスキャンする関数があります。この場合、double は、スキャンされる配列で交互になります。
ほとんどの場合は機能しますが、ARR_SIZE に関係なくスキャンされた double の数をカウントする機能も追加したいので、1500 を超える sigSize カウンターをインクリメントするために使用されなかった double の数に関する警告を表示できます。
私の試みは、条件から ARR_SIZE のものを削除するか、移動することでした。そのため、3 番目のカウンターを追加するだけで済みますが、結果が間違っています。また、ファイルからではなくキーボードで入力すると、自動的に 1500 に増加します。
全体として、EOFの使用方法について明確な理解がないように思われます。助けていただければ幸いです。
ARR_SIZE は 1500 です
Size read_array(double array1[], double array2[])
{
Size size = {0, 0};
int i = 0;
int status1 = 0;
int status2 = 0;
while(size.sigSize1 < ARR_SIZE && size.sigSize2 < ARR_SIZE &&
(status1 != EOF || status2 != EOF))
{
status1 = scanf("%lf", &array1[i]);
if(status1 != EOF)
{
size.sigSize1++;
}
status2 = scanf("%lf", &array2[i]);
if(status2 != EOF)
{
size.sigSize2++;
}
i++;
}
return size;
}