В большинстве случаев метод заключается в чтении во всех полях в записи и использовании только тех полей, которые вам нужны. Чтение дополнительных полей не потребует дополнительного времени по сравнению с выполнением кода, чтобы пропустить их.
Кроме того, предпочитайте массивы (std::vector
) структур параллельным массивам:
struct Employee_Record
{
std::string first_name;
std::string last_name;
int id;
//...
};
std::vector<Employee_Record> database;
Employee_Record array[32];
Вы можете упростить ввод, перегрузив operator>>
для структуры:
struct Employee_Record
{
//...
friend istream& operator>>(istream& input, Employee_Record& er);
};
istream& operator>>(istream& input, Employee_Record& er)
{
getline(input, er.first_name);
getline(input, er.last_name);
//...
return input;
}
Ваш введенный код будет выглядеть примерно так:
std::vector<Employee_Record> database;
Employee_Record er;
while (data_file >> er)
{
database.push_back(er);
}
Общепринятым методом является чтение всех данных, а затем обработка данных (например, поиск).