定义一个课程结构体(成员有课程名字,上课时间及总课时数),往文件写入三个课程变量后。通过文件定位,读出第二门科目的信息,打印在屏幕上。
时间: 2024-03-06 17:49:05 浏览: 16
好的,下面是一个实现你要求的示例代码:
```cpp
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
// 定义课程结构体
struct Course {
char name[50]; // 课程名字
char time[20]; // 上课时间
int totalHours; // 总课时数
};
int main() {
// 创建并打开文件
ofstream outFile("courses.txt");
if (!outFile.is_open()) {
cout << "打开文件失败!" << endl;
return 1;
}
// 写入三个课程变量
Course course1 = {"C++程序设计", "周一 1-3节", 48};
Course course2 = {"数据结构", "周三 3-5节", 64};
Course course3 = {"计算机网络", "周五 1-3节", 72};
outFile.write((char*)&course1, sizeof(Course));
outFile.write((char*)&course2, sizeof(Course));
outFile.write((char*)&course3, sizeof(Course));
// 关闭文件
outFile.close();
// 打开文件进行读取
ifstream inFile("courses.txt");
if (!inFile.is_open()) {
cout << "打开文件失败!" << endl;
return 1;
}
// 读取第二门科目的信息
Course course;
inFile.seekg(sizeof(Course), ios::beg); // 定位到第二个课程
inFile.read((char*)&course, sizeof(Course));
// 输出第二门科目的信息
cout << "第二门科目的信息如下:" << endl;
cout << "课程名字:" << course.name << endl;
cout << "上课时间:" << course.time << endl;
cout << "总课时数:" << course.totalHours << endl;
// 关闭文件
inFile.close();
return 0;
}
```
上面的代码中,我们定义了一个课程结构体 Course,其中包含课程名字、上课时间及总课时数三个成员变量。然后我们往文件写入了三个课程变量后,通过文件定位,读出第二个课程的信息,并将其打印在屏幕上。
希望以上代码对你有所帮助!