Это мой * .hDeserialize экземпляр класса в C++
class ip_file_handler {
struct IPheader {
unsigned short int ver :4;
unsigned short int ihl :4;
unsigned short int total_length;
unsigned char tos;
unsigned char ttl;
unsigned char protocol;
unsigned int checksum;
unsigned short int identification;
unsigned short int flag_offset;
unsigned int ucSource;
unsigned int ucDestination;
};
public:
ip_file_handler(){}
// func 1 (file to ip)
static bool file_to_ip_packets(std::string input_file_name,
std::string output_file_name,
unsigned int source_ip,
unsigned int destination_ip);
private:
IPheader ipInfo;
list<string> data;
};
в * .cpp:
все данные из файла в MyHandler.
эта строка класса записи в файл:
ofstream outFile(output_file_name.c_str(), ios::out | ios::binary);
ip_file_handler myHandler;
outFile.write((char*) &myHandler,sizeof(ip_file_handler));
/* здесь проблема */ эта линия чтения класс из файла:
ip_file_handler tmp;
outFile2.read((char*) &tmp, sizeof(ip_file_handler));
теперь, почему не может прочитать класс из файла! ? outFile is'nt empty!
Благодарим за всех. Adam
В общем, небезопасно бинарное копирование объекта в файл и двоичный сброс обратно в память. Вам нужно добавить функции (или операторы потоков) для записи/чтения каждого элемента вручную. –
Правильно составите свой вопрос и используйте правильную орфографию и грамматику. Если вы не прилагаете никаких усилий в своем вопросе, не ожидайте, что незнакомые люди будут заботиться о вашей проблеме. –