ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

c++ 二进制方式读取文件 读取特殊类型数据

2019-06-23 09:38:19  阅读:230  来源: 互联网

标签:文件 读取 ifs 二进制 ios c++ Person 打开方式


 1 #include <iostream>
 2 #include <fstream>
 3 using namespace std;
 4 
 5 /*
 6 二进制方式进行读写文件,可以读写 各种各样数据类型的数据
 7 */
 8 
 9 class Person {
10 public:
11     char name[50];
12     int age;
13 };
14 
15 // 1 写二进制文件
16 void binaryWrite() {
17     // 1 包含头文件
18     // 2 创建流对象 并指定路径和文件打开方式
19     ofstream ofs("person.txt", ios::out | ios::binary) ;
20     // 3 指定路径和打开方式: 利用了创建对象的构造函数
21     // 4 写文件
22     //  搞一个自己创建的对象进行写入
23     Person p = { "张三", 18 };
24     ofs.write((const char*)&p, sizeof(Person));
25     ofs.close();
26 }
27 
28 // 2 二进制方式读文件
29 void binaryRead() {
30     // 1 包含头文件
31     // 2 创建流对象
32     ifstream ifs;
33     // 3 指定文件路径和打开方式
34     ifs.open("person.txt", ios::in | ios::binary);
35     if (!ifs.is_open()) {
36         cout << "文件打开失败" << endl;
37         return;
38     }
39     // 4 读取文件
40     Person p;
41     ifs.read((char *)&p, sizeof(Person));
42     cout << p.name << " " << p.age << endl;
43     // 5 关闭流
44     ifs.close();
45 }
46 
47 int main() {
48 
49     //binaryWrite();
50     binaryRead();
51 
52     system("pause");
53     return 0;
54 }

其实在写文件的时候,只是 按照开始位置 和指定文件大小 写入一段二进制

所以打开也这样做, 给对象p一个开始位置 复制过去相应的大小。

二进制方式就很强大,能够读取各种特殊类型的数据结构

标签:文件,读取,ifs,二进制,ios,c++,Person,打开方式
来源: https://www.cnblogs.com/Lin-Yi/p/11071866.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有