| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2040 人关注过本帖, 1 人收藏
标题:关于二进制文件的输入输出的函数fwrite()和fread()
取消只看楼主 加入收藏
John0826
Rank: 1
等 级:新手上路
帖 子:15
专家分:8
注 册:2014-2-19
结帖率:100%
收藏(1)
已结贴  问题点数:10 回复次数:6 
关于二进制文件的输入输出的函数fwrite()和fread()
#include <stdio.h>
#include <stdlib.h>
#define LEN 10
int main(void)
{
    int arr[LEN]={0,1,2,3,4,5,6,7,8,9};
    int arr_2[LEN];
   
    FILE *fp;
    if((fp=fopen("bin.txt","w+b"))==NULL)
    {
        fprintf(stderr,"can`t open bin.txt file");
        exit(EXIT_FAILURE);
    }
    if(fwrite(arr,sizeof(int),LEN,fp)!=LEN)
    {
        fprintf(stderr,"file write faile");
        exit(EXIT_FAILURE);
    }
    fread(arr_2,sizeof(int),LEN,fp);
    if(fclose(fp)!=0)
    {
        fprintf(stderr,"stream closing failed");
    }
   
    for(int i=0;i<LEN;i++)
    {
        printf(" %d ",arr_2[i]);
    }

        return 0;
}
这个程序的输出结果是:全部为0,arr_2这个数组的数据全是0,为什么?(我的编译器是C-Free).
搜索更多相关主题的帖子: include 二进制 write file 
2014-03-30 11:36
John0826
Rank: 1
等 级:新手上路
帖 子:15
专家分:8
注 册:2014-2-19
收藏
得分:0 
回复 3楼 fragileeye
什么意思,我不太明白。能说清楚一点吗?
2014-03-30 19:14
John0826
Rank: 1
等 级:新手上路
帖 子:15
专家分:8
注 册:2014-2-19
收藏
得分:0 
回复 2楼 wp231957
用二进制打开方式的几个方式我都试过,结果一样的。如:"wb","wb+"等。。
2014-03-30 19:18
John0826
Rank: 1
等 级:新手上路
帖 子:15
专家分:8
注 册:2014-2-19
收藏
得分:0 
回复 3楼 fragileeye
我懂你的所说的关闭后再读了,你的意思是先关闭fp然后再调用fread()函数进行读取,结果也出来了,不再是都是0的结果,但是怎么内容不是arr这个数组里的内容呢?我的想法是借助文件(二进制)来进行数组的复制,但是结果不是这样,怎么回事呢?
2014-03-30 19:31
John0826
Rank: 1
等 级:新手上路
帖 子:15
专家分:8
注 册:2014-2-19
收藏
得分:0 
回复 7楼 wp231957
谢谢,我从你的回答里找到了我想要的东西(用你的方法得到了我想要的结果),关于读写后需要注意文件流上的指针的已经发生了改变这个问题有了更深的体验和认识,我会在这上面继续深入的。
但是三楼刚刚给的关闭流的方法我试了一下,但是结果还是不对,好像关闭流还是没有对流上的文件指针进行重置样,具体为什么我也不清楚,你能具体说明一下吗?谢谢
2014-03-30 21:38
John0826
Rank: 1
等 级:新手上路
帖 子:15
专家分:8
注 册:2014-2-19
收藏
得分:0 
回复 10楼 wp231957
"r"是以文本模式打开文件,而"rb"与"r"打开文件的意义差不多,但只是用二进制打开。文件的两种视图:文本视图和二进制视图。
2014-03-31 11:03
John0826
Rank: 1
等 级:新手上路
帖 子:15
专家分:8
注 册:2014-2-19
收藏
得分:0 
回复 10楼 wp231957
文件的两种视图,文本视图和二进制视图,"r"和"rb"打开的意义一样,但是前者以文本视图打开,后者以二进制视图打开。
2014-04-01 09:01
快速回复:关于二进制文件的输入输出的函数fwrite()和fread()
数据加载中...
 
   



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

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