目前,我有一个名为Data
的字符串流。我要求的字符串流的开始使用:Stringstream write()问题,同时“覆盖”
Data.seekp(0, std::ios::beg);
于是,我试着写2个整数的前8个字节的字符串流(以前,前8个字节被设置为0)
Data.write(reinterpret_cast<char*>(&dataLength),sizeof(int));
Data.write(reinterpret_cast<char*>(&dataFlags),sizeof(int));
的
使用Visual C++调试器,当我设置一个断点时,我可以看到dataLength
等于12,而dataFlags
等于0,因此它应该分别写入12和0。
写完2个整数后,它似乎没有效果。然后,我用下面的代码打印我的stringstream的数据:
char* b = const_cast<char*>(Data.str().c_str());
for (int i = 0; i < dataLength; i++)
{
printf("%02X ",(unsigned char)b[i]);
}
我可以看到,前8个字节我的数据仍然是0的,即使我只是覆盖了前12个字节与两个整数(其中第一个整数! = 0)。
为什么我的stringstream中的数据不能被正确覆盖?
谢谢:)工作很棒! – Brad 2010-10-31 04:32:04