我将尝试从UNIX上的二进制文件中读取数据。该文件已经存在并且其中包含了多个数据信息。
代码如下:
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();
}
阅读后,我得出结论:文件中的位置仍然是0 0,但文件不为空。
fstream::open
是否真的成功了,例如:assert(fstrHandler.good())
。 - jweyrich