我的示例文本文件如下所示:
Name: First
Email: first@gmail.com
Name: Second
Email: second@gmail.com
目前我编写了一个函数来从指定的二进制文件中读取记录:
Staff getARecord (fstream& afile, const char fileName [], int k)
{
afile.open (fileName, ios::in | ios::binary);
Staff s;
afile.seekg ((k - 1) * sizeof (Staff), ios::beg);
afile.read (reinterpret_cast <char *>(&s), sizeof (s));
afile.close ();
return s;
}
Staff
是一个由name
和email
字段组成的结构。然后我将根据用户输入获取记录:
int k;
cout << "Enter your email: ";
cin >> k;
Staff s = getARecord(afile,"staff.dat",k);
然后,如果用户的输入是数字(现在为 1 和 2,因为我只有 2 条记录),那么我已经成功读取了数据,seekg
如果用户输入的是电子邮件而不是记录号,我该如何检索相同的结果?