#include<iostream> #include<fstream> using namespace std; class Student { public: int num; char name[20]; }; int main() { fstream iofile("File.txt", ios::in | ios::out | ios::binary); if (!iofile) { cout << "打开失败" << endl; exit(1); } Student st[2] = { {101 ,"Tom"},{102,"Bob"} }, stunew[2]; for (int i = 0; i < 2; i++) { iofile.write((char*)&st[i], sizeof(Student)); } for (int i = 0; i < 2; i++) { iofile.seekg(i * sizeof(st[i]), ios::beg); iofile.read((char*)&stunew[i], sizeof(Student)); } strcpy(stunew[1].name, "Lux"); stunew[1].num = 103; iofile.seekp(sizeof(st[0]), ios::beg); iofile.write((char*)&stunew[1], sizeof(Student)); iofile.seekg(0, ios::beg); for (int i = 0; i < 2; i++) { iofile.read((char*)&stunew[i], sizeof(Student)); cout << "第" << i + 1 << "个同学的信息:" << stunew[i].name << ":" << stunew[i].num << endl; } iofile.close(); }
时间: 2023-06-25 13:07:04 浏览: 99
#include <iostream>
这是一个使用 C++ 文件流和二进制文件进行读写操作的示例程序。程序中定义了一个名为 Student 的类,包含学号和姓名两个属性。程序通过 fstream 类打开一个名为 File.txt 的二进制文件,并向其中写入两个学生对象的信息,再读取并输出这两个学生对象的信息。
程序中使用了 seekg 和 seekp 函数控制文件指针的位置,实现了对同一个文件进行多次读写操作。同时,程序还演示了如何通过在读取数据后修改对象属性,再将修改后的对象信息写回文件中。
需要注意的是,在使用二进制文件进行读写操作时,需要确保读写的数据类型和文件中存储的数据类型一致,否则可能会导致数据读写错误或数据损坏。
阅读全文