C# 读取C++写的 二进制文件

图片说明图片说明

    二进制文件是c++写的, 现在用C# 把这个二进制文件的字段读出来,用C# 自带的二进制文件读写方法读出来的数据乱码, 是因为C++ 和 C# 的数据类型所占用的字节长度不一致导致的吗,具体应该怎么读,求大神指教

2个回答

byte[] filecnt = File.ReadAllBytes("文件名");
string sitecode = "";
for (int i = 0; i < 8; i++)
{
if (filecnt[i] != 0)
sitecode += ((char)filecnt[i]).ToString();
else
break;
}
你先看看上面的代码能不能读到sitecode,如果可以,采纳本回答,帮你接着写下去。

weixin_37617896
年少的隔壁老王 https://pan.baidu.com/s/1BGq0VsR0cItIH3udzmQ8kw
11 个月之前 回复
weixin_37617896
年少的隔壁老王 你能加下我qq吗? 641254423
11 个月之前 回复
caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 回复weixin_37617896: 把你的数据文件传给我,我好帮你完成
11 个月之前 回复
caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 回复weixin_37617896: 采纳本回答,发一个样板数据文件到网盘,以及对应预期的结果。我帮你写。
11 个月之前 回复
weixin_37617896
年少的隔壁老王 这个可以读到,但是文件里面有好多其他不同类型的数据,麻烦你把这几种类型的按指针的顺序读出来,先行谢过
11 个月之前 回复

应该和字节长度没关系。
用流全部读取文件试下。用utf-8读取。

    string str = File.ReadAllText(path, Encoding.UTF8);
    Console.WriteLine("ReadAllText读所有行:\n" + str);
weixin_37617896
年少的隔壁老王 这样肯定不行
11 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!