在C++中,可以使用read()函數從文件中讀取結構體數組。下面是一個示例代碼:
#include <iostream>
#include <fstream>
using namespace std;
struct Student {
string name;
int age;
};
int main() {
int numStudents = 3;
Student students[numStudents];
ifstream infile("students.txt", ios::binary);
if (!infile) {
cerr << "Error opening file" << endl;
return 1;
}
infile.read(reinterpret_cast<char*>(students), sizeof(Student)*numStudents);
for (int i = 0; i < numStudents; i++) {
cout << "Student " << i+1 << ": " << students[i].name << ", " << students[i].age << " years old" << endl;
}
infile.close();
return 0;
}
在此示例中,首先定義了一個包含學生姓名和年齡的結構體Student。然后在main函數中定義了一個包含3個學生的數組students。接著打開一個名為"students.txt"的二進制文件,并使用read()函數從文件中讀取結構體數組。最后,遍歷數組并輸出每個學生的姓名和年齡。
注意:在使用read()函數時,需要將結構體數組強制轉換為char*類型,以便與read()函數的參數匹配。