| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 10279 人关注过本帖
标题:如何读取二进制文件?
取消只看楼主 加入收藏
youlanxiao
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2012-9-8
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:13 
如何读取二进制文件?
#include "stdio.h"
#include "process.h"
void main()
{
    FILE *fp;
    char c;

    if((fp=fopen("E:\\Encode1.da","rb"))==NULL)
    {
        printf("Can't open the file! \n");
        exit(1);
    }
    else
    {
        c=fgetc(fp);
        while (!feof(fp))
        {
            putchar(c);
            c=fgetc(fp);
        }
        putchar('\n');
        fclose(fp);
    }
}
上面是我我写的一个利用c读取二进制文件的编程。。。但是打开来的文件是乱码。不知道原因。。。还有就是因为文件后缀是.da我之前用记事本不小心打开了。。。所以现在文件图标变成记事本格式不知道如何解除。。。求求各位大神帮忙指点一下。。。谢谢
搜索更多相关主题的帖子: 如何 二进制 include 
2012-09-08 11:18
youlanxiao
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2012-9-8
收藏
得分:0 
哦~~~文件类型是1 char+1 int...原来与文件类型有关那。那应该怎么处理?谢谢啦
2012-09-08 11:36
youlanxiao
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2012-9-8
收藏
得分:0 
回复 2楼 TonyDeng
文件是1 char+1 int类型。。。这样应该怎么处理?谢谢了
2012-09-08 11:38
youlanxiao
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2012-9-8
收藏
得分:0 
回复 5楼 TonyDeng
有点懂了。。。文件是老师发给我们的。。。让我们打开它然后排序。所以我并不知道里面的内容。现在也就是说我需要把二进制文件转化成ASCII的形式对么?但是它是一个char 和int混合的形式该怎么办呢?
2012-09-08 12:04
youlanxiao
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2012-9-8
收藏
得分:0 
回复 7楼 TonyDeng
数据格式:
1 char + 1 int,其中char为原文字符,int为其所在位置的标示量
上面的就是老师给的数据格式。。。这个就是数据结构么?。。。混合型的又应该怎么读?分开来读么?
2012-09-08 12:31
youlanxiao
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2012-9-8
收藏
得分:0 
回复 9楼 TonyDeng
第一次试验.zip (20.06 KB)
这个里面有三组数据。。。我们班是第一组
2012-09-08 12:39
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
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
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
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.017354 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved