使用fstream从文件读取会破坏数据

时间:2015-11-02 08:45:18

标签: c++ file fstream corrupt resource-files

在使用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

但为什么会这样呢?我该如何解决?

0 个答案:

没有答案