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; }
时间: 2024-04-26 14:24:57 浏览: 139
是的,这段代码可以实现你的要求:定义一个课程结构体,往文件写入三个课程变量后,通过文件定位,读出第二门科目的信息,打印到屏幕上。
具体来说,这段代码定义了一个名为 Course 的结构体,包括课程名字、上课时间以及总课时数三个成员变量,然后定义了一个函数 write_courses,用于往文件中写入三个课程变量,再定义另一个函数 read_second_course,用于通过文件定位,读出第二门科目的信息并打印到屏幕上。最后,在主函数中调用这两个函数。
需要注意的是,程序中使用了 C++ 标准库中的文件流(fstream)来进行文件的读写操作。同时,程序中的文件操作都应该进行错误检查,以确保程序的健壮性。
阅读全文