| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 346 人关注过本帖
标题:新手……文件读取不明白,求指点迷津
只看楼主 加入收藏
聪儿
Rank: 1
等 级:新手上路
帖 子:75
专家分:3
注 册:2012-9-2
结帖率:77.78%
收藏
已结贴  问题点数:10 回复次数:8 
新手……文件读取不明白,求指点迷津
#include <stdio.h>
void main()
{
    int t[4];
    int i;
    FILE * fp;
    if((fp=fopen("b.txt","r"))==NULL)
    {
        printf("fopen error!\n");
        exit(0);
    }

    fread(t,sizeof(int),4,fp);
    for(i=0;i<4;i++)
        printf("%10d",t1[i]);
}
我的b.txt上面的内容是10 20 40 30
然后非常不理解:为什么我运行出来的结果是一些非常大而且很奇怪的数字:840970289 808722480 170930976 -858993460
分不多,拜托懂得道理的同学指点一下!
非常感谢!……
搜索更多相关主题的帖子: include void 
2012-10-11 20:51
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
长问不衰的问题,答不胜答。

授人以渔,不授人以鱼。
2012-10-11 20:58
爱闹的娃
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:3
帖 子:265
专家分:975
注 册:2011-10-23
收藏
得分:2 
程序代码:
#include <stdio.h>
void main()
{
    int t[4];
    int i;
    FILE * fp;
    if((fp=fopen("b.txt","r"))==NULL)
    {
        printf("fopen error!\n");
        return;
    }
for(i=0;i<4;i++)
   {
          fscanf(fp,"%d",&t[i]);
     
        printf("%10d\n",t[i]);
    }
}
2012-10-11 21:09
聪儿
Rank: 1
等 级:新手上路
帖 子:75
专家分:3
注 册:2012-9-2
收藏
得分:0 
懂得的人总是感觉很简单,没有必要解释。可是对于不懂得孩子来说就是一座山啊。、
2012-10-11 21:09
青春无限
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江苏
等 级:贵宾
威 望:24
帖 子:3451
专家分:19340
注 册:2012-3-31
收藏
得分:0 
看看

学 会看代码…学习写程序…学会搞开发…我的目标!呵呵是不是说大话啊!!一切皆可能
2012-10-11 21:11
聪儿
Rank: 1
等 级:新手上路
帖 子:75
专家分:3
注 册:2012-9-2
收藏
得分:0 
多谢二楼!

不过主要还是想要再问一下:fread函数的问题。我这样子做有什么不妥的地方吗?按照如下该函数功能以及用法像我那样使用有错吗?

size_t fread(void *buffer, size_t size, size_t count, FILE *stream);   
功 能:   从一个文件流中读数据,读取count个元素,每个元素size字节.如果调用成功返回count.如果调用成功则实际读取size*count字节
2012-10-11 21:14
聪儿
Rank: 1
等 级:新手上路
帖 子:75
专家分:3
注 册:2012-9-2
收藏
得分:0 
回复 2楼 TonyDeng
拜托帮主解释一下了!

找了很多资料,也问了很多同学都不太说得清楚这个理,拜托了!!
2012-10-12 20:29
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:8 
你那文件上的数据是以文本形式储存的,就用文本读写函数读写,即fscanf()和fprintf(),那文本文件就相当于屏幕。fread()和fwrite()是将二进制数据读写到文件中,只有数据是用fwrite()写出的数据,才能用fread()读回来。目前,你只需要记住,两套函数是配对使用的,不能混。

授人以渔,不授人以鱼。
2012-10-12 21:26
聪儿
Rank: 1
等 级:新手上路
帖 子:75
专家分:3
注 册:2012-9-2
收藏
得分:0 
回复 8楼 TonyDeng
懂得了。
非常感谢!
2012-10-13 09:11
快速回复:新手……文件读取不明白,求指点迷津
数据加载中...
 
   



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

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