在C++中用二进制文件方式将n个学生的数据写入文件"student.dat",从二进制文件"student.dat"中,将学生信息一个一个地读出,并在显示器上显示。学生(数据:姓名、学号、班级;操作:自定);
时间: 2024-02-19 19:58:25 浏览: 84
好的,我可以回答这个问题。
首先,我们需要定义一个学生的结构体,包含姓名、学号和班级等信息。代码如下:
```c++
struct Student {
char name[20];
char id[10];
char clazz[10];
};
```
然后,我们需要写入n个学生的信息到二进制文件"student.dat"中。具体操作如下:
```c++
#include <fstream>
// 写入n个学生信息到文件
void write_students_to_file(int n) {
std::ofstream ofs("student.dat", std::ios::binary);
if (!ofs) {
std::cerr << "failed to open file" << std::endl;
return;
}
for (int i = 0; i < n; i++) {
Student student;
// 填充学生信息
// ...
// 写入学生信息到文件
ofs.write(reinterpret_cast<const char*>(&student), sizeof(student));
}
ofs.close();
}
```
最后,我们从二进制文件"student.dat"中一个一个地读出学生信息,并在显示器上显示。具体操作如下:
```c++
#include <iostream>
#include <fstream>
// 从文件中读取学生信息并显示
void read_students_from_file() {
std::ifstream ifs("student.dat", std::ios::binary);
if (!ifs) {
std::cerr << "failed to open file" << std::endl;
return;
}
Student student;
while (ifs.read(reinterpret_cast<char*>(&student), sizeof(student))) {
std::cout << "name: " << student.name << std::endl;
std::cout << "id: " << student.id << std::endl;
std::cout << "class: " << student.clazz << std::endl;
}
ifs.close();
}
```
以上就是用C++将n个学生的数据写入二进制文件并从文件中读取的完整代码。
阅读全文