鱼C论坛

 找回密码
 立即注册
查看: 1165|回复: 0

[技术交流] C++旅程第九站----二进制文件

[复制链接]
发表于 2020-5-24 21:35:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 这是她 于 2020-5-24 21:34 编辑

Happy people build their inner world.Uhappy people blame their outer world.          -T.Harv Eker
                                                                                           二进制文件                 ——以二进制方式对文件进行读写操作
            二进制文件打开方式->ios::binary

           写文件:
                 二进制写文件主要利用流对象调用成员函数write,以二进制方式写入对象

                 函数原型:ostream& write(const char * buffer ,int len);
                 buffer->字符指针,指向内存中的一段存储空间
                 len->读写的字节数
  1. #include<iostream>
  2. #include<fstream>//头文件

  3. using namespace std;

  4. class Test11
  5. {
  6. public:
  7. char m_subject[64];
  8. int m_grade;
  9. };

  10. void test()
  11. {
  12. //创建流对象
  13. ofstream p1;//只创建一个流对象
  14. //ofstream p1("test2.txt",ios::out | ios::binary);//在创建流对象的时候,就打开文件

  15. //打开文件,并且判断是否打开成功
  16. p1.open("test2.txt",ios::out | ios::binary);

  17. //写文件
  18. Test11 t = {"语文",88};
  19. p1.write((const char *)&t,sizeof(t)); //write函数将字符指针t所给出的地址开始的t长度个字节的内容不加转换地写到test2文件中。
  20. //const->是因为不允许通过指针改变其指向数据的值

  21. //关闭文件
  22. p1.close();
  23. }

  24. int main()
  25. {
  26. test();

  27. return 0;
  28. }
复制代码

         读文件:
                二进制方式读文件主要利用流对象调用成员函数read

                函数原型:istream& read(char * buffer,int len);
                buffer->字符指针,指向内存中的一段存储空间
                len->读写的字节数
  1. #include<iostream>
  2. #include<fstream>//头文件

  3. using namespace std;

  4. class Test11
  5. {
  6.         public:
  7.                 char m_subject[64];
  8.                 int m_grade;
  9. };

  10. void test()
  11. {
  12.         //创建流对象
  13.         ifstream p1;
  14.         
  15.         //打开文件,并且判断是否打开成功
  16.         p1.open("test2.txt",ios::in | ios::binary);
  17.         
  18.         if(!p1.is_open())
  19.         {
  20.                 cout << "文件打开失败!!!!" << endl;
  21.                 return;
  22.         }
  23.         
  24.         //写文件
  25.         Test11 s;
  26.         p1.read((char *)&s, sizeof(s));//将指定数目的字节读入内存,依次存放在以地址&s开始的存储空间中
  27.          
  28.         cout << "科目: " << s.m_subject << "   成绩: " << s.m_grade << endl;
  29.          
  30.         //关闭文件
  31.         p1.close();
  32. }

  33. int main()
  34. {
  35.         test();
  36.         
  37.         return 0;
  38. }
复制代码
                                        渣渣一个求指教







本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-24 01:07

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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