| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1267 人关注过本帖
标题:如何将数据写入文件
只看楼主 加入收藏
ou1111
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:87
专家分:162
注 册:2010-10-26
结帖率:100%
收藏
已结贴  问题点数:0 回复次数:2 
如何将数据写入文件
请问::
       我设计了一个类
 private:
  int top;
  studentdata s[MAXS];
需要构造函数是从文件读数据,析构函数是写入数据;数据必须是按编号(1,2,3......)排序的,请问该如何写??
下面我写的,可是数据写不进文件里
cstudent::cstudent()
    {
       top=-1;
       fstream outfile;
       outfile.open("F:\\studentdata.txt",ios::in|ios::binary); //从磁盘的studentdata.txt文件中读取学生信息
      while(1)
      {
          if(!outfile) break;      
        top++;
        outfile.read((char *)&s[top],sizeof(s[top]));      
      }
      outfile.close();
      top++;   
    }
cstudent::~cstudent()
    {
        studentdata b;
      fstream iofile;
      iofile.open("F:\\studentdata.txt",ios::binary);
      for(int i=0;i<top;i++)
       iofile.close();   
    }
搜索更多相关主题的帖子: private 
2011-04-30 10:31
debroa723
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:23
帖 子:862
专家分:1954
注 册:2008-10-12
收藏
得分:14 
for(int i=0;i<top;i++)
       iofile.close();
这个地方没看明白要干什么?
你在哪儿保存了数据?
还有你的MAXS够大吗?能装下文件里的数据吗?
如果文件中数据量很大,静态数组是不安全的,最好使用动态数组,在运行时根据文件中数据量的大小来动态分配内存或是分批量管理数据。一般文件的开头都有该文件的大小数据,读取出来后动态分配数组大小,如果没有,也可以使用outfile来得到文件大小(这个是一定有的)。
2011-04-30 22:51
ou1111
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:87
专家分:162
注 册:2010-10-26
收藏
得分:0 
回复 2楼 debroa723
for(i=0;i<top;i++)
       iofile.write((char *)&s[i],sizeof(s[i]));//漏掉了
      iofile.close();   
还有一个问题是::如何将数据按编号由小到大有序的存入文件中????
2011-05-01 09:15
快速回复:如何将数据写入文件
数据加载中...
 
   



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

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