| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 420 人关注过本帖
标题:有关写入二进制文件之若干疑问,希望请教大家。
只看楼主 加入收藏
刮目相看
Rank: 2
等 级:论坛游民
帖 子:25
专家分:30
注 册:2009-11-23
结帖率:50%
收藏
 问题点数:0 回复次数:2 
有关写入二进制文件之若干疑问,希望请教大家。
假如有一个整形数组: arr[5]={1,2,3,4,5}
如果我想以二进制写入:

第一种:
for(i=0;i<5;i++){
fwrite(arr+i,sizeof(int),1,f);
}

第二种:
char buf[5];
for(i=0;i<5;i++){
sprintf(buf,"%d",arr[i]);
fwrite(buf,sizeof(int),1,f);
}

期中f都为以二进制打开可写的文件指针。请问,这两种方法区别和在?哪个是正确的?或者2个都不对么?
谢谢大家的回答。
}
搜索更多相关主题的帖子: 二进制 疑问 文件 
2010-04-17 18:38
雨夜星光
Rank: 4
等 级:业余侠客
帖 子:66
专家分:230
注 册:2009-11-25
收藏
得分:0 
sprintf(buf,"%d",arr[i]);
应该写成sprintf(buf,"%c",arr[i]);
吧?
这个区别到不是很好回答,要看你使用的习惯了!

C/C++交流群:65802335
2010-04-17 19:23
刮目相看
Rank: 2
等 级:论坛游民
帖 子:25
专家分:30
注 册:2009-11-23
收藏
得分:0 
吧问题补充下。
就是先建立一个二进制文件,里面都是int。比如11223455。(当然二进制文件里面不会显示出这些,而是些乱码)
然后从这个二进制文件中读取,结果写入一个文本文件,结果应该显示为:1 22 3 4 55 。就是2个1,2个2,1个3,1个4,2个5。每组用空格隔开。

建立二进制文件我写的是:
 FILE *f1;
        int arr[8]={1,1,2,2,2,3,4,4};
        char buf[20];
        int i;
        
        f1=fopen("test","w");
        
        for(i=0;i<8;i++)
        {
         fwrite((arr+i),sizeof(int),1,f1);
        }
        fclose(f1);

读取二进制,将结果写入文本文件我用的是:

    FILE *f1,*f2;
   
    char buf1[20],buf2[20];
    int tmp1,tmp2;
    int count=0;
   
    char c;
   
    f1=fopen("test","rb");//源文件,二进制,里面是int
    f2=fopen("desti.txt","w");//目标文件,要求是文本文件
   
   

    while(!feof(f1))
    {
                    fread(&tmp1,sizeof(int),1,f1);

                    
                    if(!fread(&tmp2,sizeof(int),1,f1))break;
                    
                    for(count=0;count<tmp1;count++)
                    {
                          fprintf(f2,"%d",tmp2);
                          
                    }
                    fputc(' ',f2);

    }
    fclose(f1);
    fclose(f2);
2010-04-17 19:58
快速回复:有关写入二进制文件之若干疑问,希望请教大家。
数据加载中...
 
   



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

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