データ検証関数を作成しようとしています。この関数では、ID番号は構造体の配列内の一意の番号である必要があります。有効なID番号を保存しようとするたびに、プログラムがクラッシュします-なぜこれが発生するのですか?
これは構造体であり、構造体の配列の宣言です。
struct customer { // set up customer template //
char name [MAXNAM];
char surname [MAXNAM];
int idnum [MAX_ID];
};
struct customer data_cus[MAXCUS];
これはメインプログラム内にあります:
printf ("Please Enter ID Card, [NOTE! Only numbers are allowed!]\n");
int checkID;
while ((scanf ("%d",&checkID) == 0 || customerID(checkID, count)==1))
{
printf ("This ID is already taken! Please enter unique ID!\n");
while (getchar()!='\n')
{
continue;
}
*data_cus[count].idnum = checkID;
}
IDをチェックするために使用される関数は次のとおりです。IDはファイルにすでに存在します。
int customerID (int cCheck, int count)
{
FILE * pcustomer;
int size = sizeof (struct customer);
struct customer temp;
rewind (pcustomer);
while (fread (&temp,size,count,pcustomer)==1)
{
if (*temp.idnum == cCheck)
{
return 1;
}
}
return 0;
}
ご協力ありがとうございました!