大家好,我有这个功能可以告诉我数据文件中有多少条记录。但是,每当我运行它时,它只会读取偶数记录
例如:如果我有 0 条记录,则输出 0
有 1 条记录,它输出 0
有 2 条记录,它输出 1
用 3 它输出 1
用 4 它输出 2
(顺便说一句,它对于客户和产品数据库项目 customer 是一个结构,而 filep 是指向在此代码上方定义的文件 customerfile 的指针)我在 eclipse 上运行并且只能使用 gnu89/90 方言,如果这会产生差异
int CusFileNumber(void)
{
customer tempcus;
filep = fopen(customersFile, "r");
fseek (filep,0,SEEK_SET);
int counter =0;
while(!feof(filep))
{
fread(&tempcus,sizeof(customer),1,filep);
printf ("%d",counter);
counter ++;
}
fclose(filep);
return (counter-1);
}
所以我更新了代码以摆脱 feof
看起来像这样
int CusFileNumber(void)
{
customer tempcus;
filep = fopen(customersFile, "r");
fseek (filep,0,SEEK_SET);
int counter =0;
while(fread(&tempcus, sizeof(customer), 1, filep) == 1)
{
printf ("%d",counter);
counter ++;
}
fclose(filep);
return (counter);
}
但是这次我仍然遇到同样的问题,它没有计算偶数
这意味着在每个奇数计数器上递增 1,但当我在文件中有偶数条记录时保持不变(顺便说一句,它是一个 .dat 文件)