首页 > 编程语言 > 详细

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

时间:2019-06-23 10:32:04      阅读:180      评论:0      收藏:0      [点我收藏+]
 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一个开始位置 复制过去相应的大小。

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

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

原文:https://www.cnblogs.com/Lin-Yi/p/11071866.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!