мой код ниже.
int main() {
Employee* employee = new Employee();
cout << "Creating File..." << endl;
fstream file("deneme1.txt",ios::out|ios::binary|ios::ate);
for(int i=0;i<10;i++){
if(i<4){
string name;
float salary;
int yearHired;
cout<<"Enter Name: ";
cin>>name;
cout<<"Enter Salary: ";
cin>>salary;
cout<<"Enter Year Hired: ";
cin>>yearHired;
employee->set_id(i);
employee->set_name(name);
employee->set_salary(salary);
employee->set_yearHired(yearHired);
file.write((char*)&employee,sizeof(employee));
file.close();
}
}
file.open("deneme1.txt",ios::in|ios::out|ios::binary);
file.seekg(0);
while((file.read((char*)&employee,sizeof(employee)))) {
cout << employee->get_id();
}
}
У меня есть двоичный файл с именем "deneme1.txt". Я записываю четыре объекта в "deneme1.txt". Я хочу получить всю строку "deneme1.txt" в while
циклах, но я могу получить только последнюю строку (поэтому вывод
«Создание файла ...
3"
)
Как я могу получить все строки в файле? Может быть, файл имеет только один объект?
мой класс ниже
class Employee
{
private:
string name;
int id;
float salary;
int yearHired;
public:
void set_name(string n)
{
this->name = n;
}
void set_id(int i)
{
this->id = i;
}
string get_name()
{
return name;
}
int get_id()
{
return id;
}
void set_salary(float s)
{
this->salary = s;
}
float get_salary()
{
return salary;
}
void set_yearHired(int y)
{
this->yearHired = y;
}
int get_yearHired()
{
return yearHired;
}
};
Я ожидаю, что на выходе будет "0 1 2 3"