损坏的文件流(用c#编写和用c ++读取)

时间:2014-09-24 13:22:58

标签: c# c++ file stream

对于我遇到的问题,我真的很感激。

我需要在C#中保存二进制文件并用C ++(编辑器/游戏引擎)读取它们。我目前的解决方案已经工作多年了,但现在,由于某种原因,我开始遇到问题。

在C#中,我有以下代码来设置流:

Stream stream = new FileStream(fileName, FileMode.Create, FileAccess.Write, FileShare.None);
BinaryWriter writer = new BinaryWriter(stream);

我使用writer.Write(..)编写数据。

在C ++中,我使用以下代码打开一个流:

std::ifstream inStream;
inStream.open(fileName, std::ios::binary);

我读了这样的数据:

int val = -1;
inStream.read((char*) &val, sizeof(int)).

99%的时间一切正常但有时当我读取文件时(在C ++中),流被搞砸了,失败位被设置了。

问题总是发生在导出文件的同一个地方,当发生这种情况时,每次我尝试读取文件时都会发生这种情况。

当我正在读一个int,一个浮点数,一个字符串或其他什么时。它也可以在流中的任何地方发生。

我还在编辑器中构建了一个导入功能,我从来没有在C#中遇到过这个问题。

所以,当我用C ++读取文件时,显然我遗失了一些东西。

我对流等没有任何实际体验,所以我想(并希望)我在设置流时只是遗漏了一些东西。

感谢您的帮助!

0 个答案:

没有答案
相关问题