| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2623 人关注过本帖, 1 人收藏
标题:将信息以结构体的形式用fwrite存入二进制文件后该怎么读取出来显示在屏幕上 ...
只看楼主 加入收藏
carloss364
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2012-9-5
结帖率:100%
收藏(1)
已结贴  问题点数:20 回复次数:5 
将信息以结构体的形式用fwrite存入二进制文件后该怎么读取出来显示在屏幕上啊???为啥我用fread显示出来的是乱码啊?????[em06]
求助!!!!!!将信息以结构体的形式用fwrite存入二进制文件后该怎么读取出来显示在屏幕上啊???为啥我用fread显示出来的是乱码啊?????

结构体:
struct student_type
{char name[20];
int num;
char sex;
float math;
float chenise;
float english;
}stud[SIZE];

存入:
for(i=0;i<SIZE;i++)
        if(fwrite(&stud[i],sizeof(struct student_type),1,fp)!=1)
            printf("file write error\n");
        fclose(fp);

读取:
for(i=0;i<SIZE;i++)
    {fread(&stud1[i],sizeof(struct student_type),1,fp);
    printf("%-20s%9d%c%10f%10f%10f",stud1[i].name,stud1[i].num,stud1[i].sex,stud1[i].math,stud1[i].chenise,stud1[i].english);
    }
搜索更多相关主题的帖子: 二进制 信息 结构体 
2012-09-05 23:38
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:7 
如果之前写入的内容是正确的话,之后读取的就应该也是正确的。
2012-09-06 23:03
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:7 
回复 楼主 carloss364
定位的关键点如二楼如说,写入的数据是什么?

总有那身价贱的人给作业贴回复完整的代码
2012-09-07 08:19
qq872551969
Rank: 9Rank: 9Rank: 9
等 级:禁止访问
威 望:1
帖 子:241
专家分:1377
注 册:2012-7-13
收藏
得分:7 
数字和字母好像无解?

编程交流请加群:【234181324】,一起学习,一起进步,新建的群,主打C语言和JAVA等程序设计,等待高手们的入驻,无论你是高手也好,新手也好,在这里都是平等的,欢迎你们的加入~!【234181324】
2012-09-07 21:35
carloss364
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2012-9-5
收藏
得分:0 
嘿嘿,谢谢各位。这个问题已经解决了。
2012-09-08 10:10
一个孩子
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:356
专家分:954
注 册:2012-10-1
收藏
得分:0 
程序代码:
#include<stdio.h>

int main(void)
{
    FILE *fp,*fp1;
    char str[200]={0},ch;
    int t = 0;
    printf("\t\t1:新建文件\n");
    printf("\t\t2:追加内容\n");
    printf("\t\t0:退出\n");
    printf("请选择:");
    scanf("%d",&t);
    switch(t)
    {
        case 1:
        {
            printf("请输入文件名:");
            scanf("%s",str);
            if( !(fp = fopen(str,"w") ) )
            {
                printf("新建失败!\n");
                return 0;
            }
            fclose(fp);
        }break;
        case 2:
        {
            printf("请输入文件名:");
            gets(str);
            if( !(fp1 = fopen(str,"a+") ) )
            {
                printf("打开失败!\n");
                return 0;
            }
            while(ch != EOF)
            {
                ch = getchar();
                fputc(ch,fp1);
            }
            fclose(fp1);
        }break;
        case 0:
            return 0;
            break;
        default:
            printf("cw");
            break;
    }           
    //fclose(fp);
    //fclose(fp1);
    return 0;
}

打开和关闭文件要配对,你原来的那个不行的!

重要的不是结果,是求一个结果的过程,哪怕千难万难,当你有想要的结果时,你已走的很远
2012-11-22 21:58
快速回复:将信息以结构体的形式用fwrite存入二进制文件后该怎么读取出来显示在屏 ...
数据加载中...
 
   



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

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