定义一个课程结构体(成员有课程名字、上课时间以及总课时数),往文件写入三个课程变量后。通过 文件定位,读出第二门科目的信息,打印到屏幕上
时间: 2024-03-08 13:48:38 浏览: 19
好的,以下是代码示例:
```c++
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
struct Course {
char name[20];
char time[20];
int totalHours;
};
int main() {
// 定义三个课程变量
Course course1 = {"数据结构", "周一1-4节", 48};
Course course2 = {"操作系统", "周二1-4节", 48};
Course course3 = {"计算机网络", "周三1-4节", 48};
// 将三个课程变量写入文件
ofstream ofs("courses.txt", ios::out | ios::binary);
ofs.write((char*)&course1, sizeof(course1));
ofs.write((char*)&course2, sizeof(course2));
ofs.write((char*)&course3, sizeof(course3));
ofs.close();
// 读取第二门科目的信息
ifstream ifs("courses.txt", ios::in | ios::binary);
ifs.seekg(sizeof(Course)); // 文件定位到第二门课程
Course course;
ifs.read((char*)&course, sizeof(course));
ifs.close();
// 打印第二门科目的信息
cout << "课程名字:" << course.name << endl;
cout << "上课时间:" << course.time << endl;
cout << "总课时数:" << course.totalHours << endl;
return 0;
}
```
代码中首先定义了一个课程结构体 `Course`,包括课程名字、上课时间以及总课时数三个成员变量。
然后定义了三个 `Course` 类型的变量 `course1`、`course2`、`course3`,并将它们写入文件 `courses.txt` 中。
接着从文件中读取第二门科目的信息,可以使用 `ifstream` 和 `seekg` 函数将文件定位到第二个 `Course` 的位置,再使用 `read` 函数读取一个 `Course` 的数据即可。
最后将读取到的第二门科目的信息打印到屏幕上,输出结果如下:
```
课程名字:操作系统
上课时间:周二1-4节
总课时数:48
```