Файловые потоки: read, write. Странные вещи происходят.
От: Ravshan  
Дата: 13.05.07 07:46
Оценка:
Сохраняю объекты класса address в одном проекте:
#include "..\address.h"
int main () {
    //
    SetConsoleOutputCP(1251);
    char* filename="..\\write.txt";
    address a("Иванов","Ленина",1),b("Petrov","gg",2),c("3","3",3);
    filebuf buf;
    buf.open(filename,ios::out|ios::binary);    
    ostream out(&buf);
    out.write((char*)&a, sizeof(address));
    out.write((char*)&b, sizeof(address));
    out.write((char*)&c, sizeof(address));
    buf.close();
    return 0;
}


Считываю в другом проекте:
#include "..\address.h"
int main () {
    //
    SetConsoleOutputCP(1251);
    char* filename="..\\write.txt";
        in.open(filename,ios::in | ios::binary);
    address a,b,c;
    in.read((char*)&a,sizeof(address));
    in.read((char*)&b,sizeof(address));
    in.read((char*)&c,sizeof(address));
    a.Show();
    b.Show();
    c.Show();
    in.close();
    return 0;
}


Когда вывожу в первых двух полях которые string абракадабра, а в третьем, которое инт все нормально. Студия Visual Studio 6. Когда записываю и считываю в одном проекте все нормально. И в 2005 студии в разных все нормально работает. Но нужно сделать в 6 и в разных. Как?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.