目前,我有一個名爲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