这段代码输出有问题
程序代码:void AutoComp(void){ // 自动计算经销商经营的每一个产品所得利润
char ch[10]; long pos;
FILE *fp1, *fp2, *fp3;
//distributor t; // 定义经销商表变量 t
products t1; // 定义商品表变量 t1
range t2; // 定义经营范围表变量 t2
if ((fp1=fopen("..\\CP2012self\\2877products.dat", "rb"))==0) {
printf("\n\nCannot open products data file!\n");
fclose(fp1); return;
}
if ((fp2=fopen("..\\CP2012self\\2877range.dat", "rb"))==0) {
printf("\n\nCannot open range data file!\n");
fclose(fp1); fclose(fp2); return;
}
system("cls");
printf("\n\n\t\tAuto computing, Please waiting......");
rewind(fp2);
pos=ftell(fp2); // 保留下该经销商经营范围记录的位置
fread(&t2, sizeof(range), 1, fp2);
while (!feof(fp2)) { // 逐个经销商进行计算
rewind(fp1); // 复位到商品文件头
fread(&t1, sizeof(products), 1, fp1); // 从商品文件中读取一个商品记录
while (!feof(fp1)) { // 在商品表中查找t2.productnum商品的进价记录
if (strcmp(t2.productnum, t1.num)==0) {
// 找到了t2.productnum商品的进价记录
t2.profit=(t2.sprice-t1.pprice)*t2.number;
break;
}
fread(&t1, sizeof(products), 1, fp1); //无法写入文件
}
fseek(fp2, pos, SEEK_SET); // 在文件中定位给定编号的经销商记录
fwrite(&t2, sizeof(range), 1, fp2); // 修改文件中给定编号的经销商记录
pos=pos+sizeof(range); // 保留下该经销商经营范围记录的位置
fseek(fp2, pos, SEEK_SET); // 在文件中定位当前记录的下一经销商记录
fread(&t2, sizeof(t2), 1, fp2);
}
fclose(fp2); fclose(fp1);
system("cls");
printf("\n\n\t\tAuto computation is over. ");
getch();
}






