Я пытаюсь читать из двоичного файла в UNIX. Файл существует и содержит в нем несколько данных.fstream unix problem in reading
код выглядит следующим образом:
fstrean fstrHandler;
string strFileName;
char Buf[30000];
fstrHandler.open(strFileName.c_str(), ios::in | ios::binary);
fstrHandler.seekp(0, std::ios_base::beg);
std::cout<< "Posi before read= "<< fstrHandler.tellg()<<endl; //*** Show after running 0
fstrHandler.read (Buf, 400);
std::cout<< "Posi after read= "<< fstrHandler.tellg()<<endl; //*** Show after running 0
std::cout<< " gcount()= "<< fstrHandler.gcount()<< << endl; //*** Show after running 0
if (fstrHandler.eof()) {
fstrHandler.clear();
}
После чтения я получаю, что позиция в файле по-прежнему ноль ноль, но файл не пуст.
s/fstrean/fstream /. Кроме того, вы должны проверить, действительно ли 'fstream :: open' действительно удалось, например:' assert (fstrHandler.good()) '. – jweyrich
Я не добавил его, но он существует –
И после нижеследующих комментариев assert (fstrHandler) вместо good(). –