| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1690 人关注过本帖
标题:读二进制文件操作
只看楼主 加入收藏
c821101017
Rank: 2
等 级:论坛游民
帖 子:33
专家分:10
注 册:2011-9-21
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:10 
读二进制文件操作
    我在做一个2/3FEC编译码的程序,其中有用到一个从txt文件中读出一串二进制代码(即0、1),并且将其存放在一个数组中。我用的代码是:for(i=0;i<15;i++)
        {
            if(fscanf(fp,"%d",&n[i])==EOF)
                break;
            printf("%d",n[i]);
        }
但是输出结果是从第一个非零元素开始输出的,我不明白怎么改。望大家指教下……
搜索更多相关主题的帖子: 二进制 
2011-09-21 18:29
czsbc
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:469
专家分:1700
注 册:2008-12-13
收藏
得分:5 
for(i=0;i<15;i++)
         {
             if(fscanf(fp,"%c",&n[i])==EOF)            //改为每次读一个字符
                 break;
             printf("%c",n[i]);                        //同样以字符格式输出
         }
 
2011-09-22 01:25
c821101017
Rank: 2
等 级:论坛游民
帖 子:33
专家分:10
注 册:2011-9-21
收藏
得分:0 
回复 2楼 czsbc
    能解释下我那样写的程序错在哪吗?
2011-09-22 09:51
czsbc
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:469
专家分:1700
注 册:2008-12-13
收藏
得分:10 
"%d"是读入一个整数,这个结束符可以是空格,或者是回车换行。如果是一连串的01会被当成一个数读入,而且可能会出现溢出,输出的时候"%d"只会输出它的本身十进制值大小,不会管前面有多少个0。0001 被读入的值也就是1。
2011-09-22 10:27
c821101017
Rank: 2
等 级:论坛游民
帖 子:33
专家分:10
注 册:2011-9-21
收藏
得分:0 
回复 4楼 czsbc
    那除了转换成字符形式输出,还有其他的什么简单的方法吗?因为最后还要将字符ASCII值减去48转换成整形,我觉得比较麻烦……
2011-09-22 12:05
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:2 
读这种数据文件一般用fread()的,不是用fscanf()的。

授人以渔,不授人以鱼。
2011-09-22 12:14
czsbc
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:469
专家分:1700
注 册:2008-12-13
收藏
得分:1 
for(i=0;i<15;i++)
          {
              if(fscanf(fp,"%c",&n[i])==EOF)            //改为每次读一个字符
                  break;
              a[i]-=48;                    
              printf("%d",n[i]);                        //同样以字符格式输出
          }
读的时候就可以减了。没有什么麻烦的..
2011-09-22 12:17
奈落落
Rank: 1
等 级:新手上路
帖 子:13
专家分:8
注 册:2011-6-21
收藏
得分:2 
fread或者fgetc、fgets,不推荐使用fscanf
2011-09-22 12:19
怎么会这样子
Rank: 2
来 自:广州
等 级:论坛游民
帖 子:31
专家分:39
注 册:2011-8-20
收藏
得分:0 
回复 4楼 czsbc
学习了!
2011-09-22 12:47
c821101017
Rank: 2
等 级:论坛游民
帖 子:33
专家分:10
注 册:2011-9-21
收藏
得分:0 
回复 8楼 奈落落
    能根据我的这个问题,用你所说的方法编出来么
2011-09-22 15:00
快速回复:读二进制文件操作
数据加载中...
 
   



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

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