Как работают функции чтения и записи в файлах OOP C++
Я работаю над обработкой файлов с ООП и узнал о небольших встроенных функциях write()
& read()
Но я не знаю, почему это потребовало кастинга. Я также пытался бросить в int*
вместо char*
тогда кастинг не работает. Я попробовал поискать в Google, но не смог найти хорошие учебники или статьи.
#include<iostream>
#include<fstream>
using namespace std;
class Person{
private:
int age;
char name[15];
public:
void getData()
{
cout<<"Enter the name of person:";
cin>>name;
cout<<"Enter the age of person:";
cin>>age;
}
void showData()
{
cout<<"\nName is:"<<name;
cout<<"\nAge is:"<<age;
}
};
int main()
{
Person p;
p.getData();
ofstream outfile("Person.txt");
outfile.write(reinterpret_cast<char*>(&p), sizeof(p)); // how this works?
ifstream infile("Person.txt");
infile.read(reinterpret_cast<char*>(&p), sizeof(p)); // how this works?
p.showData();
return 0;
}
Можете ли вы сказать мне, почему требуется кастинг? и почему оператор sizeof?