定义一个课程结构体(成员有课程 名字、上课时间以及总课时数),往文件写入三个课程变量后。通过 文件定位,读出第二门科目的信息,打印到屏幕上
时间: 2024-03-08 08:48:22 浏览: 15
好的,我来回答你的问题。
首先,我们可以定义一个名为 Course 的结构体,包括课程名字、上课时间以及总课时数三个成员变量:
```c++
struct Course {
string name;
string time;
int total_hours;
};
```
接着,我们可以定义一个函数,往文件中写入三个课程变量:
```c++
void write_courses() {
Course course1 = {"Math", "Mon 9:00-11:00", 36};
Course course2 = {"English", "Wed 14:00-16:00", 32};
Course course3 = {"Physics", "Fri 10:00-12:00", 40};
ofstream ofs("courses.txt", ios::out);
ofs.write((char*)&course1, sizeof(course1));
ofs.write((char*)&course2, sizeof(course2));
ofs.write((char*)&course3, sizeof(course3));
ofs.close();
}
```
这个函数使用 ofstream 打开文件 courses.txt,然后依次写入三个课程变量,最后关闭文件。
最后,我们可以定义另一个函数,通过文件定位,读出第二门科目的信息,并打印到屏幕上:
```c++
void read_second_course() {
ifstream ifs("courses.txt", ios::in);
ifs.seekg(sizeof(Course), ios::beg);
Course course;
ifs.read((char*)&course, sizeof(course));
cout << "Second course: " << endl;
cout << "Name: " << course.name << endl;
cout << "Time: " << course.time << endl;
cout << "Total hours: " << course.total_hours << endl;
ifs.close();
}
```
这个函数使用 ifstream 打开文件 courses.txt,然后使用 seekg 函数定位到第二个课程的位置,读取出该课程的信息,并打印到屏幕上。
完整代码如下:
```c++
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
struct Course {
string name;
string time;
int total_hours;
};
void write_courses() {
Course course1 = {"Math", "Mon 9:00-11:00", 36};
Course course2 = {"English", "Wed 14:00-16:00", 32};
Course course3 = {"Physics", "Fri 10:00-12:00", 40};
ofstream ofs("courses.txt", ios::out);
ofs.write((char*)&course1, sizeof(course1));
ofs.write((char*)&course2, sizeof(course2));
ofs.write((char*)&course3, sizeof(course3));
ofs.close();
}
void read_second_course() {
ifstream ifs("courses.txt", ios::in);
ifs.seekg(sizeof(Course), ios::beg);
Course course;
ifs.read((char*)&course, sizeof(course));
cout << "Second course: " << endl;
cout << "Name: " << course.name << endl;
cout << "Time: " << course.time << endl;
cout << "Total hours: " << course.total_hours << endl;
ifs.close();
}
int main() {
write_courses();
read_second_course();
return 0;
}
```
希望我的回答能够帮到你!