【问题描述】读入一个存储了3条学生记录的文件file1.dat,将第1条记录和第3条记录交换后保存成文件file2.dat。 学生记录结构如下: struct student { char name[20]; int num; int age; char sex; };
时间: 2024-03-02 12:50:39 浏览: 66
好的,我来帮你解决这个问题。你需要先定义一个 `struct student` 结构体,然后按照题目要求读取文件、交换记录、保存文件。以下是代码实现:
```c++
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
struct student {
char name[20];
int num;
int age;
char sex;
};
int main() {
student stu[3];
ifstream fin("file1.dat", ios::binary);
fin.read((char*)&stu, sizeof(stu));
fin.close();
// 交换第1条记录和第3条记录
student temp = stu[0];
stu[0] = stu[2];
stu[2] = temp;
ofstream fout("file2.dat", ios::binary);
fout.write((char*)&stu, sizeof(stu));
fout.close();
return 0;
}
```
以上代码中,我们先定义了 `struct student` 结构体,然后使用文件流对象 `ifstream` 读取文件 `file1.dat` 中的 3 条学生记录,存储在 `stu` 数组中。接着交换第1条记录和第3条记录,最后使用文件流对象 `ofstream` 将 `stu` 数组中的学生记录保存到文件 `file2.dat` 中。注意要使用二进制模式进行文件读写,防止出现换行符等特殊字符导致的读写错误。
阅读全文