鱼C论坛

 找回密码
 立即注册
查看: 3591|回复: 3

0xfeeefeee错误

[复制链接]
发表于 2018-6-9 15:37:08 | 显示全部楼层
cpp的fstream并没有足够智能到足以保存类对象的的地步,所以你要么自己实现,要么借助第三方类库,下面我帮你写个一个比较简单的方法,你拿去吧

  1. #include <iostream>
  2. #include <fstream>
  3. #include <string>
  4. #include <map>

  5. using namespace std;

  6. class ceshi{
  7. public:
  8.     map<int, string> obm;
  9.     int count;
  10.     friend ifstream& operator>>(ifstream& is, ceshi& st);
  11.     friend ofstream& operator<<(ofstream& os, const ceshi& st);
  12. };

  13. ifstream& operator>>(ifstream& is, ceshi& st){
  14.     is >> st.count;
  15.    
  16.     //如果map对象有多个的话,这里可以写个循环来循环写入
  17.     int first;
  18.     string second;
  19.     is >> first;
  20.     is >> second;

  21.     st.obm.insert(pair<int, string>(first, second));
  22.     return is;
  23. }

  24. ofstream& operator<<(ofstream& os, ceshi& st){
  25.     os << st.count << " ";
  26.     for (auto iter = st.obm.begin(); iter != st.obm.end(); iter++) {
  27.         os << iter->first << " " << iter->second << " ";
  28.     }
  29.     return os;
  30. }


  31. int main() {
  32.     ceshi c;
  33.     c.count = 6;
  34.     c.obm[44] = "gdagzsd";
  35.     ofstream fout("ceshi.txt");
  36.     fout << c;
  37.     fout.close();

  38.     ceshi c2;
  39.     ifstream fin("ceshi.txt");
  40.     fin >> c2;

  41.     cout << c2.count << endl;
  42.     for (auto iter = c2.obm.begin(); iter != c2.obm.end(); iter++){
  43.         cout << iter->first << " " << iter->second << endl;
  44.     }
  45.     fin.close();




  46.     return 0;
  47. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-2 09:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表