Как работают функции чтения и записи в файлах 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?

0 ответов

Другие вопросы по тегам