| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 473 人关注过本帖
标题:文件读写问题,搞不懂。。
只看楼主 加入收藏
聪儿
Rank: 1
等 级:新手上路
帖 子:75
专家分:3
注 册:2012-9-2
结帖率:77.78%
收藏
已结贴  问题点数:20 回复次数:8 
文件读写问题,搞不懂。。

图片附件: 游客没有浏览图片的权限,请 登录注册
不明白,为什么读文件出错。
我开始用 fread 就是错误的,后来别人指导说 fread用于二进制数,
推荐使用 fscanf 。然后还是这个效果。按照该函数的使用说明也找不出来原因。
实在搞不明白哪里出问题了。求大神指导啊。。

我的完整代码是:
#include<iostream>
using namespace std;
int main()
{
    int a[10],b=1;
    FILE * fp;
    if((fp=fopen("b.txt","r"))==NULL)
        cout<<"fopen error!"<<endl;
    for(int i=0;i<10;i++)
    {
        //fread(a,sizeof(int),10,fp);
        fscanf(fp,"%d",&a[i]);
        cout<<a[i]<<'\t';
    }
    return 0;
}



[ 本帖最后由 聪儿 于 2012-11-22 23:20 编辑 ]
搜索更多相关主题的帖子: include 二进制 
2012-11-22 23:15
w527705090
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:11
帖 子:441
专家分:1882
注 册:2011-6-28
收藏
得分:5 
程序代码:
#include<iostream>
using namespace std;
int main()
{
    int a[10],b=1;
    FILE *fp;\\这里多了个空格。。。。。。
    if((fp=fopen("b.txt","r"))==NULL)
        cout<<"fopen error!"<<endl;
    for(int i=0;i<10;i++)
    {
        //fread(a,sizeof(int),10,fp);
        fscanf(fp,"%d",&a[i]);
        cout<<a[i]<<'\t';
    }
    return 0;
}


有心者,千方百计;无心者,千难万难。
2012-11-22 23:27
mmmmmmmmmmmm
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:8
帖 子:388
专家分:1809
注 册:2012-11-2
收藏
得分:10 
楼主C++的可以这样  供参考哈

使用iofstream

程序代码:
#include<iostream>
#include <string>
#include <fstream>
using namespace std;
int main()
{
   ifstream fp("b.txt");
   if (fp)
   {
        string str;
        while (fp >> str)
        {
            cout<<str<<endl;
        }
   }
    return 0;
}

我们的目标只有一个:消灭0回复!
while(1)
++money;
2012-11-22 23:31
w527705090
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:11
帖 子:441
专家分:1882
注 册:2011-6-28
收藏
得分:0 
还要补充一下。。。
貌似不改你那个空格。。。。
我这里运行照样成功。。。
这是什么情况。。。
图片附件: 游客没有浏览图片的权限,请 登录注册

有心者,千方百计;无心者,千难万难。
2012-11-22 23:31
mmmmmmmmmmmm
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:8
帖 子:388
专家分:1809
注 册:2012-11-2
收藏
得分:0 
空格应该只是格式问题吧


以下是引用w527705090在2012-11-22 23:31:32的发言:

还要补充一下。。。
貌似不改你那个空格。。。。
我这里运行照样成功。。。
这是什么情况。。。

我们的目标只有一个:消灭0回复!
while(1)
++money;
2012-11-22 23:33
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:5 
有两种可能
一种是,你文件打开失败。因为打开失败的话,你没有return
第二种可能,你程序打开的b.txt和你记事本打开的b.txt不是同一个b.txt
2012-11-23 09:22
聪儿
Rank: 1
等 级:新手上路
帖 子:75
专家分:3
注 册:2012-9-2
收藏
得分:0 
回复 6楼 rjsp
若果是文件打开失败的话,不是已经给输出“fopen error”的吗?没有输出,应该是 没有问题的。。
2012-11-23 22:03
聪儿
Rank: 1
等 级:新手上路
帖 子:75
专家分:3
注 册:2012-9-2
收藏
得分:0 
我自己新建了一个工程,重新试了下,就好了。。

那个错误应该是概率极小的错误吧。虽然也不知道到底是什么原因。

还是多谢大家了!都非常中肯! 谢谢!
2012-11-24 09:54
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:0 
回复 8楼 聪儿
遇到问题还是重现下把 争取解决掉
Lz  可以增加调试信息  主要是判断fp的状态   fscanf 的返回值 看是否正的写进内存了
2012-11-24 12:45
快速回复:文件读写问题,搞不懂。。
数据加载中...
 
   



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

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