Re[3]: <vector> C++
От: Usefur  
Дата: 30.05.11 20:40
Оценка:
Здравствуйте, Fedor Sumkin, Вы писали:

FS>Да, данный способ верен для POD-типов и хорош тем что не надо задумываться о внутреннем устройстве структуры/класса — единственное, что нужно использовать — массивы вместо указателей. Также, его можно легко расширить, добавив дополнительные данные в структуру и ничего не поломается(если нет необходимости в поддержке совместимости со старыми форматами файлов где хранится информация). В рамках поставленной задачи — самое разумное решение в 30-50 строк. Ну и что, что файл может стать большим — чем-то приходится жертвовать.


FS>Раз кто-то усомнился в том что так можно(а минусов-то понаставили ) — привожу полный код решения.



    vector <Person> pers;

    pers.push_back(Person);

    ofstream out ("E:\\file1.txt", ios::binary);
    int size = pers.size();
    out.write((char*)(&size), 4);
    out.write((char*)&pers[0], pers.size()*sizeof(Person));
    out.close();}

Вот в pers.push_back(Person); что именно из елементов нужно писать?...Чтобы весь класс сохранить в нем.

class Person{

public:
        Person(){}    
        ~Person(){}   
        
        
        string GetFamiliya(){ return persFamiliya;}
        string GetName(){ return persName;}
        string GetData(){ return persData;}
        string GetTelefon(){ return persTelefon;}

        
        void SetFamiliya(string fam){ persFamiliya=fam;}
        void SetName(string name){ persName=name;}
        void SetData(string data){ persData=data;}
        void SetTelefon(string tel){ persTelefon=tel;}

        
        void Print();
        
private:
        string persFamiliya;
        string persName;
        string persData;
        string persTelefon;
        
};
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.