| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 599 人关注过本帖
标题:帮我看下这问题怎么解决哦。
只看楼主 加入收藏
user_qiangzi
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:137
专家分:194
注 册:2011-8-29
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:14 
帮我看下这问题怎么解决哦。
程序代码:
#include<stdio.h>
#include<stdlib.h>

struct xx
{
    int bhao;
    char mz[15];
    float qian;
    float pj;
}shuj[100]={0};

FILE *fp;
FILE *fo;
int ww;

int main()
{
    fp=fopen("data.txt","a");
    fo=fopen("data1.dll","w");
    void tjia();
    void ckan();
    int i;
    do
    {
        i=0;
        printf("1,添加数据\n2,查看数据\n");
        scanf("%d",&i);
        switch(i)
        {
            case 1:
                tjia();
                break;
            case 2:
                ckan();
                break;
        }
    }while(i!=3);
}

void tjia()
{
    int i,w;
    printf("请输入要添加的人数:");
    scanf("%d",&w);
    fread(&ww,sizeof(int ww),1,fo);  //好想是这里错了 ,不知道要怎么代替哦.
    ww=ww+w;
    if(fwrite(&ww,sizeof(int ww),1,fo)!=1)
            ;
    for(i=0;i<ww;i++)
        if(shuj[i].bhao==0)
        {
            printf("请输入编号:");
            shuj[i].bhao=rand()%1000;
            printf("编号自动生成成功!\n");
            printf("请输入名字:");
            scanf("%s",shuj[i].mz);
            printf("请输入钱数:");
            scanf("%f",&shuj[i].qian);
            shuj[i].pj=shuj[i].qian/3.0;
            if(shuj[i].bhao!=0)
                if(fwrite(&shuj[i],sizeof(struct xx),1,fp)!=1)
                    printf("数据写入错误!\n");
        }
}

void ckan()
{
    fp=fopen("data.txt","r");
    int i;
    for(i=0;i<100;i++)
    {
        fread(&shuj[i],sizeof(struct xx),1,fp);
        if(shuj[i].bhao!=0)
            printf("\n编号:%d,名字:%s,钱数:%.2f,平均:%.2f\n",shuj[i].bhao,shuj[i].mz,shuj[i].qian,shuj[i].pj);
    }
    fclose(fp);
}

各位大神帮忙看看.

[ 本帖最后由 user_qiangzi 于 2012-6-5 15:17 编辑 ]
2012-06-05 15:14
user_qiangzi
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:137
专家分:194
注 册:2011-8-29
收藏
得分:0 
    来人啊 ,帮下我啊..
2012-06-05 15:26
华夏永荣
Rank: 2
等 级:论坛游民
帖 子:35
专家分:12
注 册:2010-10-9
收藏
得分:7 
fread 函数使用的不正确。。。。。。
2012-06-05 15:49
华夏永荣
Rank: 2
等 级:论坛游民
帖 子:35
专家分:12
注 册:2010-10-9
收藏
得分:0 
    fread(&ww,sizeof(int ww),1,fo);  //好想是这里错了 ,不知道要怎么代替哦.
    ww=ww+w;
    if(fwrite(&ww,sizeof(int ww),1,fo)!=1)
            ;
你写这段代码想干什么???????????
2012-06-05 15:55
user_qiangzi
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:137
专家分:194
注 册:2011-8-29
收藏
得分:0 
回复 4楼 华夏永荣
把它写入文件中,在读出来.
2012-06-05 15:57
华夏永荣
Rank: 2
等 级:论坛游民
帖 子:35
专家分:12
注 册:2010-10-9
收藏
得分:0 
回复 5楼 user_qiangzi
你要把人数写进文件然后读出来,然后按照读出来的人数,循环写入文件????
2012-06-05 16:23
user_qiangzi
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:137
专家分:194
注 册:2011-8-29
收藏
得分:0 
回复 6楼 华夏永荣
恩,是的。.
2012-06-05 16:28
华夏永荣
Rank: 2
等 级:论坛游民
帖 子:35
专家分:12
注 册:2010-10-9
收藏
得分:0 
回复 7楼 user_qiangzi
那你为什么不直接把 w 作为循环写入文件的条件呢????
2012-06-05 16:36
user_qiangzi
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:137
专家分:194
注 册:2011-8-29
收藏
得分:0 
回复 8楼 华夏永荣
我这么做是有目的得...
2012-06-05 16:47
华夏永荣
Rank: 2
等 级:论坛游民
帖 子:35
专家分:12
注 册:2010-10-9
收藏
得分:0 
回复 9楼 user_qiangzi
麻烦把你的目的说出来,另外你的 w 还未写入文件,你就fread,怎么可能读出来
2012-06-05 16:53
快速回复:帮我看下这问题怎么解决哦。
数据加载中...
 
   



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

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