запись объекта в файл в cpp - PullRequest
       1

запись объекта в файл в cpp

0 голосов
/ 20 августа 2011

Я пытаюсь записать содержимое объекта в файл. Это мой код

void Write_data_intoFile(Customer c1)
{
ofstream fout("cust_details.txt", ios::out | ios::app); 
fout.write(reinterpret_cast<char*> (&c1),sizeof c1);
fout.close();
}

Вот как я вызываю функцию

c[ Customer_count ].Write_data_intoFile(c[ Customer_count ]);

Программа работает нормально, но содержимое не записывается в файл. Он показывает красную метку, говорящую, что он не может открыть файл. Как решить это

class Customer
{
char name[25];
int id;
}

Я создал объекты глобально,

Customer c[20];

Я пытаюсь записать его в текстовом формате

Ответы [ 2 ]

3 голосов
/ 20 августа 2011

ОК, сначала нужно написать функцию для ввода / вывода текста Клиента. Традиционно эта функция называется оператор <<. Итак, вам нужно что-то вроде этого </p>

ostream& operator<<(ostream& out, const Customer& c)
{
  return out << c.name << ' ' << c.id << '\n';
}

Может быть (трудно быть уверенным), вам нужно объявить эту функцию как друга вашего класса Customer, если вы получаете ошибки о доступе или приватном сообщении, вам, вероятно, нужно добавить эту строку

friend ostream& operator<<(ostream& out, const Customer& c);

внутри вашего класса клиентов.

Затем вам нужно вызвать эту функцию изнутри вашей другой функции, как это

void Write_data_intoFile(Customer c1)
{
  ofstream fout("cust_details.txt", ios::out | ios::app); 
  fout << c1;
  fout.close();
}

Тогда вам действительно нужно почитать хорошую книгу по C ++, иначе сложно все исправить. Возникли проблемы снова.

2 голосов
/ 20 августа 2011

Вместо того, чтобы изобретать велосипед потенциально опасным способом Boost.Serialization может решить эту проблему за вас, скрывая грязные детали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...