建立某单位职工通讯录的二进制数据文件,文件中的每个记录包括:职工编号、姓名、电话号码、邮政编码和住址。 c++
时间: 2024-06-08 13:07:13 浏览: 14
以下是一个简单的 c++ 程序,用于创建和操作职工通讯录二进制文件:
```c++
#include <iostream>
#include <fstream>
using namespace std;
// 定义职工数据结构
struct Employee {
int id;
string name;
string phone;
string postal_code;
string address;
};
// 定义函数以便在文件中写入和读取员工记录
void writeEmployeeRecord(fstream& file, const Employee& emp) {
file.write((char*)&emp, sizeof(emp));
}
void readEmployeeRecord(fstream& file, Employee& emp) {
file.read((char*)&emp, sizeof(emp));
}
int main() {
// 打开文件以便写入数据
fstream file("employee_data.bin", ios::out | ios::binary);
// 写入一些员工记录
Employee emp1 = { 1001, "张三", "13800138000", "100000", "北京市海淀区" };
Employee emp2 = { 1002, "李四", "13900139000", "200000", "上海市浦东新区" };
Employee emp3 = { 1003, "王五", "13600136000", "300000", "广州市天河区" };
writeEmployeeRecord(file, emp1);
writeEmployeeRecord(file, emp2);
writeEmployeeRecord(file, emp3);
// 关闭文件
file.close();
// 重新打开文件以便读取数据
file.open("employee_data.bin", ios::in | ios::binary);
// 读取并输出所有员工记录
Employee emp;
while (!file.eof()) {
readEmployeeRecord(file, emp);
cout << "ID: " << emp.id << endl;
cout << "Name: " << emp.name << endl;
cout << "Phone: " << emp.phone << endl;
cout << "Postal Code: " << emp.postal_code << endl;
cout << "Address: " << emp.address << endl << endl;
}
// 关闭文件
file.close();
return 0;
}
```
这个程序创建一个名为 `employee_data.bin` 的二进制文件,并在其中写入了三个员工记录。然后程序重新打开文件并读取所有员工记录,输出它们的详细信息。注意写入和读取员工记录的函数 `writeEmployeeRecord` 和 `readEmployeeRecord`,它们使用指针和 `sizeof` 运算符来确保正确地处理结构体数据。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)