常用作读取计算文件的大小
long pos = file.tellg(); // 得到文件指针当前指向的文件位置。
file.seekg(0,ios::beg); //让文件指针定位到文件开头
file.seekg(0,ios::end); //让文件指针定位到文件末尾
file.seekg(10,ios::cur); //让文件指针从当前位置向文件末方向移动10个字节
file.seekg(-10,ios::cur); //让文件指针从当前位置向文件开始方向移动10个字节
file.seekg(10,ios::beg); //让文件指针定位到离文件开头10个字节的位置
下面是使用示例:
bool LoadBinary(const char * filepath, int startaddress, map<unsigned int, size_t>& data, long& size)
{
bool result = true;
std::vector<char>outdata;
std::ifstream file(filepath, std::ios::binary | std::ios::in);
if (!file.is_open()) {
return result= false;
}
file.seekg(0, std::ios::end);
size = (long)file.tellg();
outdata.resize(size);
file.seekg(0, std::ios::beg);
file.read(outdata.data(), size);
file.close();
for (int i = 0; i < size;i++)
{
data[startaddress] = outdata[i];
startaddress++;
}
return result;
}