Re: std::string и fstream
От: catBasilio  
Дата: 02.09.09 07:32
Оценка:
Здравствуйте, R1K0, Вы писали:

RK>Всем привет. Может я туплю, но почему-то проблема со строками и чтением их из файла.


RK>
RK>class cCachedFile
RK>{
RK>    public:
RK>        string  url;
RK>        string  fileName;
RK>        string  pathToFile;
RK>        UINT    entryID;
RK>        UINT    sessionID;
RK>        ULONGLONG fileSize;
RK>        BOOL    wasDownloaded;
RK>};
RK>


RK>Скажите, пожалуйста, что тут не так, ибо когда файл считан в vector, то поля url и pathToFile содержат мусор, тогда как все все остальные (включая fileName) содержат именно то, что должны.


std::string неслзя тупо взять и записать как структуру, потому-что это полнценный класс, с указателями и т.д.

И вообще нехорошо записывать так как ты делаешь. если уж нужно что-то в поток записать, то переопредели операторы << и >> для работы с твоим классом


ofstream& operator<< (ofstream& ofs, cCachedFile& a)
{
  ofs << a.url;
  ofs << a.fileName; 
  ...

  return ofs;
}

ifstream& operator >> (ifstream& ifs, cCachedFile& a)
{
  ifs >> a.url;
  ifs >> a.fileName; 
  ...

  return ifs;
}



запись:
 metaFile << _record;


чтение:

metaFile >> _record;
UNIX way — это когда тебе вместо туалетной бумаги дают топор, рубанок и карту близлежащего леса
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.