【发布时间】:2012-06-29 10:07:03
【问题描述】:
我有一个用 C 语言编写的二进制文件,其中包含一长串数字。 首先它随后包含 4 次 int(所以前 16 个字节是 4 个 int)然后它包含双精度数(我假设每 8 个字节一个新的双精度数)。
在任何点或其他任何地方都没有空格。现在我需要用 C# 读取数据,但到目前为止我尝试的所有方法都不起作用,有什么建议吗?
【问题讨论】:
-
你尝试了什么?
-
对于那些不熟悉 C 的人来说,这是说它是二进制文件而不是文本文件吗?如果是这样,msdn.microsoft.com/en-us/library/system.io.binaryreader.aspx 可能会有所帮助...具有 ReadInt32 等有用的方法...
-
首先我尝试使用
FileStream打开文件并使用fs.Read(byte[4], 0, 4)将前四个字节读入数组,然后使用BitConverter.ToInt32(byte[4], int)将其转换为整数。我使用char[4]对StreamReader进行了同样的尝试,但这也没有用。 -
理论上不应该是一个文本文件,因为它是使用 fprintf 创建的。
-
如果数字确实打印了“%d%d%d%d%lf%lf...”(没有空格)并且它们的十进制表示的长度不同(即不同的数字数字/数字),它们很难分开。