标题:这段代码输出有问题
只看楼主
yuiopsx
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2012-7-6
结帖率:0
 问题点数:0 回复次数:0 
这段代码输出有问题
程序代码:
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();
}
搜索更多相关主题的帖子: pos products 
2012-07-06 22:04



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-372902-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.134079 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved