C++中读取/写入类对象到文件
The iostream 标准库 具有两个方法 cin,用于从标准输入流接收输入,以及 cout 用于将输出打印到标准输出流。在本文中,我们将学习如何将文件中的数据读取到类对象中,以及如何将类对象中的数据写入文件。
读取和写入文件数据需要另一个标准库 C++ <fstream>。fstream 的三种主要数据类型为:
- ifstream − 表示输入文件流,并从文件中读取信息。
- ofstream − 表示输出文件流,并将信息写入文件。
- fstream − 表示通用文件流,并具有两者的功能。
创建类对象
我们正在使用一个名为 Employee 的类,其 Name、Employee_ID 和 Salary 为其公有数据成员。
class Employee {
public:
char Name[];
long Employee_ID;
int Salary;
} ;
Employee Emp_1;
Emp_1.Name=”Jhonson”;
Emp_1.Employee_ID=212020;
Emp_1.Salary=11000;创建文件对象
语法
fstream/ofstream/ifstream object_name; void open(const char *filename, ios::openmode); ofstream file1; file1.open( “Employee.txt”, ios::app );
这里 file1 是用于以追加模式打开 Employee.txt 文件的对象(新内容追加到末尾)。file1 对象的类型为 ofstream,这意味着我们可以写入 Employee.txt。
ifstream file2; file2.open( “Employee.txt”, ios::in );
这里 file2 是用于以输入模式打开 Employee.txt 文件以读取内容的对象。file1 对象的类型为 ifstream,这意味着我们只能从 Employee.txt 读取数据。
写入和读取类对象
file1.write( (char*)&Emp_1, sizeof(Emp1) );
这里通过调用 write 函数将类对象 Emp_1 中存在的数据写入文件 Employee.txt。(char*)&Emp_1 用于指向对象的开头,sizeof(Emp_1) 计算写入文件中的字节数。
file2.read( (char*)&Emp_1, sizeof(Emp1) );
这里通过调用 read 函数将类对象 Emp_1 中存在的数据从文件 Employee.txt 读取。(char*)&Emp_1 用于指向对象的开头,sizeof(Emp_1) 计算从文件中读取的字节数。
关闭文件
file1.close(); file2.close();
关闭文件的输入流和输出流。
示例
#include <iostream>
#include <fstream>
using namespace std;
// Class to define the properties
class Employee {
public:
string Name;
int Employee_ID;
int Salary;
};
int main(){
Employee Emp_1;
Emp_1.Name="John";
Emp_1.Employee_ID=2121;
Emp_1.Salary=11000;
//Wriring this data to Employee.txt
ofstream file1;
file1.open("Employee.txt", ios::app);
file1.write((char*)&Emp_1,sizeof(Emp_1));
file1.close();
//Reading data from EMployee.txt
ifstream file2;
file2.open("Employee.txt",ios::in);
file2.seekg(0);
file2.read((char*)&Emp_1,sizeof(Emp_1));
printf("\nName :%s",Emp_1.Name);
printf("\nEmployee ID :%d",Emp_1.Employee_ID);
printf("\nSalary :%d",Emp_1.Salary);
file2.close();
return 0;
}输出
Name: John Employee ID: 2121 Salary: 11000
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP