| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 10279 人关注过本帖
标题:如何读取二进制文件?
只看楼主 加入收藏
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
哦,总算看明白他的语文。数据是1个char接着1个int来储存的,先读一个char,然后读1个int。刚才忘了你用"rb"打开,那就用fgetc()读一个char,直接putchar()出去,然后再fgetc()一个char,但是用printf("%d")输出。或者定义一个struct体,用fread()来读。

[ 本帖最后由 TonyDeng 于 2012-9-8 12:51 编辑 ]

授人以渔,不授人以鱼。
2012-09-08 12:46
youlanxiao
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2012-9-8
收藏
得分:0 
回复 11楼 TonyDeng
    while (!feof(fp))
        {
            fscanf("%c%d",fgetc(fp));
        }
是这样改么?改完之后有错误额。。。error C2664: 'fscanf' : cannot convert parameter 1 from 'char [5]' to 'struct _iobuf *'
错误是这个/。。。。

2012-09-08 12:53
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
11楼修改过了。

授人以渔,不授人以鱼。
2012-09-08 12:57
youlanxiao
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2012-9-8
收藏
得分:0 
回复 11楼 TonyDeng
else
    {
        
        while (!feof(fp))
        {
            c=fgetc(fp);
            putchar(c);
            c=fgetc(fp);
            printf("%d",c);
        }
这样之后依旧是乱码这是为什么?。。。额我没有学过文件读取。。。这个是老师让我门自己查的。我找到的书上没有找到如何读复杂的数据所以只能叨扰大神了。。。
2012-09-08 13:02
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
先定义这么一个结构:
struct _data
{
    char a;
    int b;
}
然后:
_data x;
while (fread(&x, sizeof(x), 1, fp == 1)
{
    printf("%c,%d\n", x.a, x.b);
}

授人以渔,不授人以鱼。
2012-09-08 13:03
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
第一个数据文件,数据依次是n、i、空格,没错呀。

授人以渔,不授人以鱼。
2012-09-08 13:07
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
那个int,是32位的,你不要用TC之类16位的程序来读。

授人以渔,不授人以鱼。
2012-09-08 13:10
youlanxiao
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2012-9-8
收藏
得分:0 
回复 15楼 TonyDeng
    else
    {
        struct _data
        {
          char a;
          int b;
        }
        _data x;
     while (fread(&x, sizeof(x), 1, fp == 1)
     {
        printf("%c,%d\n", x.a, x.b);
     }      
    }
这个样子?
2012-09-08 13:11
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
你自己写具体代码,我没有上机写。用你懂的方式组织代码,思路就是那个样子。

授人以渔,不授人以鱼。
2012-09-08 13:14
youlanxiao
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2012-9-8
收藏
得分:0 
回复 17楼 TonyDeng
我用的是vc6.0那个TN是什么东西呀?。。。按大神的指示写出来之后出现好多错误。不知道为什么
2012-09-08 13:14
快速回复:如何读取二进制文件?
数据加载中...
 
   



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

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