例如:
原有数据:11111111111111111111111111
新的数据:11111111111100001111111111
要求:
1、不能重新读取旧的所有数据;
已知:所需修改数据的首地址,以及新的值。
例如需要修改二进制中某个int对象的值,编写代码如下:
......
//std::ofstream m_sWrite;
//修改
bool ModifiedHeadSize(int nPos,int nNewValue)
{
if (m_sWrite.fail())
return false;
//获得当前文件指针的位置
int nOld = m_sWrite.tellp();
m_sWrite.seekp(nPos,std::ios::beg);
m_sWrite.write((const char*)&nNewValue,sizeof(int));
//将文件指针指向修改之前的地址
m_sWrite.seekp(nOld,std::ios::beg);
return true;
}
......