在使用VC11编译器的Visual Studio 2013中,我尝试实现自动构建增量,因此我尝试使用带有fstream的版本信息读取资源文件,但问题是加载的内容的一半是例如腐败用中文字符后,我把它重写回文件。 我读了这样的文件:
mFile.open(mParams.tFilename.c_str(), std::fstream::in);
if (!mFile.is_open())
{
cerr << "ReadFile:Cannot open file!\n";
return false;
}
string line = "";
mFileContent.clear();
while (getline(mFile, line))
{
mFileContent.push_back(line);
}
然后像这样写回文件:
mFile.open(mParams.tFilename.c_str(), std::fstream::out std::fstream::trunc);
std::ostream_iterator<std::string> output_iterator(mFile, "\n");
std::copy(mFileContent.begin(), mFileContent.end(), output_iterator);
但是内容看起来像这样(我不能在SO中使用它作为块引用,因为然后我得到警告(... cannost开头): http://pastebin.com/D1J5UfFr
而不是这个: http://pastebin.com/WL6pGX9A
但为什么会这样呢?我该如何解决?