std :: wofstream无法写长篇

时间:2016-05-09 07:28:03

标签: c++ file c++11 wofstream

我有两个流,一个用于读取,另一个用于写入(差异文件)。

std::wofstream origin;
std::wifstream attach;

origin.open(m_SourceFile, std::ios_base::app | std::ios_base::binary);
attach.open(csAttachFilename, std::ios_base::in | std::ios_base::binary);

将数据附加到文件可以正常工作,直到它进入具有std::streamoff变量的写入操作。 考虑到它是std::wofstream,我输出变量"通常"正如我在这个功能中已经做了几次。

//[...]
origin.seekp(0, std::ios_base::end); //Go to the end
std::streamoff nOffSet = origin.tellp();

//int nFilenameLength = ...;
origin.write(reinterpret_cast<wchar_t*>(&nFilenameLength), sizeof(nFilenameLength) / sizeof(wchar_t)); //int
//Nothing wrong here
//[...] write more

attach.close();
auto c1 = origin.bad(); //false
origin.write(reinterpret_cast<wchar_t*>(&nOffSet), sizeof(nOffSet) / sizeof(wchar_t));
auto c2 = origin.bad(); //true
//[...] write more

什么可能导致这个问题?
请注意,如果我改为使用std::ofstream,这样可以正常工作。

0 个答案:

没有答案