东方耀AI技术分享

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 2417|回复: 0
打印 上一主题 下一主题

[C/C++] linux中将类的对象写入文件并读入后打印对象信息

[复制链接]

1365

主题

1856

帖子

1万

积分

管理员

Rank: 10Rank: 10Rank: 10

积分
14446
QQ
跳转到指定楼层
楼主
发表于 2021-7-27 16:13:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式





linux中将类的对象写入文件并读入后打印对象信息

  1. #include <iostream>
  2. #include <fstream>
  3. #include <string.h>

  4. class Teacher
  5. {
  6. private:
  7.     int age;
  8.     char name[64];
  9. public:
  10.     Teacher(int _age, char *_name);
  11.     void printInfo();
  12. };

  13. Teacher::Teacher(int _age, char *_name)
  14. {
  15.     Teacher::age = _age;
  16.     strcpy(Teacher::name, _name);
  17. }

  18. void Teacher::printInfo(){
  19.     std::cout << "name=" << Teacher::name << ",age=" << Teacher::age << std::endl;
  20. }

  21. //linux中将类的对象写入文件并读入后打印对象信息
  22. int main(){
  23.     std::cout << "文件读入与写" << std::endl;
  24.     Teacher t1(30, "t30");
  25.     Teacher t2(33, "jiang");

  26.     // t1.printInfo();
  27.     // t2.printInfo();

  28.     //写入对象  linux注意细节:文件名必须是绝对路径
  29.     char *filename = "/home/jiang/jjj_opencl_works/io.data";
  30.     std::ofstream fout(filename, std::ios::out);
  31.     fout.write((char*)&t1, sizeof(Teacher));
  32.     fout.write((char*)&t2, sizeof(Teacher));
  33.     fout.close();

  34.     //读入文件
  35.     std::ifstream fin(filename, std::ios::in);
  36.     Teacher temp(0, " ");
  37.     fin.read((char *)&temp, sizeof(Teacher));
  38.     temp.printInfo();
  39.     fin.read((char *)&temp, sizeof(Teacher));
  40.     temp.printInfo();
  41.     fin.close();


  42.     return 0;
  43. }



复制代码


让天下人人学会人工智能!人工智能的前景一片大好!
回复

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|人工智能工程师的摇篮 ( 湘ICP备2020019608号-1 )

GMT+8, 2024-6-2 01:53 , Processed in 0.174995 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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