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

图片说明图片说明

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

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,如果可以,采纳本回答,帮你接着写下去。

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

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

    string str = File.ReadAllText(path, Encoding.UTF8);
    Console.WriteLine("ReadAllText读所有行:\n" + str);
0
weixin_37617896
年少的隔壁老王 这样肯定不行
7 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
C# 二进制文件的读写
BinaryReader 和 BinaryWriter 类用于二进制文件的读写。BinaryReader 类BinaryReader 类用于从文件读取二进制数据。一个 BinaryReader 对象通过向它的构造函数传递 FileStream 对象而被创建。下表列出了 BinaryReader 类中一些常用的方法:序号方法 &amp;amp; 描述1public override void Close()...
c#读取二进制文件c#读取二进制文件
c#读取二进制文件c#读取二进制文件c#读取二进制文件c#读取二进制文件c#读取二进制文件c#读取二进制文件
c# 存取结构体 二进制文件
转载连接: http://www.cnblogs.com/baishahe/archive/2010/03/18/1688995.htmlusing System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;...
一种C#读写二进制文件的通用方法
本文转载连接: http://www.cnblogs.com/TianFang/archive/2012/10/06/2712987.html 一种C#读写二进制文件的通用方法 在日常的工作中,我们经常需要进行一些二进制文件或协议的读写操作,用C#解析二进制文件常常是一件比较麻烦且容易出错的工作,本文介绍了一种在C#中实现快速读写二进制文件通用的方法。 以一个解析Mp
C/C++读写文本文件、二进制文件
C语言文本文件读写方式;C语言二进制文件读写方式;CPP文本文件读写方式;CPP二进制文件读写方式;
C#读取和写入二进制文件
BinaryReader和BinaryWriter类用于读取和写入二进制文件。BinaryReader类BinaryReader类用于从文件读取二进制数据。通过将FileStream对象传递给其构造函数来创建BinaryReader对象。下表介绍了BinaryReader类的常用方法。BinaryWriter类BinaryWriter类用于将二进制数据写入流。通过将FileStream对象传递给其...
C#如何读取二进制文件(float32)
今天碰到一个问题,手上有一个二进制文件,里面的数据是由一个一个的float32类型数值组成,现在需要在C#中读取这个文件中的所有数据。 首先找到C#中用于读取二进制文件的有BinaryReade这个类,那么关于这个类的描述及其方法参见MSDN: https://msdn.microsoft.com/en-us/library/system.io.binaryreader_methods(v=v
C读写二进制文件
Tips for green man: 首先,对编程经验较浅薄的读者们重申一个观点: 计算机内部的一切数据流和信息流,都是二进制的。 我们不要纠结于“读二进制的文件”, 或者“写十六进制的文件“, 类似这样的问题。 因为文件本身的保存数据都是按二进制来写的,我们的着眼点应该是文件内的“内容”是什么。 比如说你在一个txt文件内,写入了一个“十进制的5”,你打开这个txt看到的就是一个十进制的...
C#--二进制文件读写
二进制文件读写                二进制文件读写主要通过BinaryWrite和BinaryReader类来实现的。创建一个windows应用窗体,添加一个SaveFileDialog控件,OpenFileDialog控件,Text Box控件,两个Button控件。需要添加的指令:using System.IO;窗体设计部分:代码:using System; using System...
C#读取二进制文件【float型】
今天需要用C#读取二进制文件,文件里面存储的全是float类型的小数。 由于接口比较隐蔽,所以就记录一下。 FileStream fs; fs = new FileStream(filename, FileMode.OpenOrCreate, FileAccess.Read); BinaryReader br = ne
c实现功能(11)对二进制文件的读写
#include &amp;lt;stdio.h&amp;gt; #include &amp;lt;string.h&amp;gt; int main(){ //实现对二进制文件的读取 //打开文件 FILE *p = fopen(&quot;D:\\test\\a.wmv&quot;, &quot;rb&quot;); FILE *p1 = fopen(&quot;D:\\test\\b.wmv&quot;, &quot;wb&quot;); //设置字符缓冲
c读写二进制文件
<br />这是一个典型的c读写二进制的示例,作用是传入两个参数,将第一个参数所指的文件,复制至第二个参数指向的文件。<br />#include <stdio.h> //标准输入输入出的头文件,printf和scanf都在这里了 #include <stdlib.h> //标准库头文件,内存分配、数学运算等都在这里了 #define MAXLEN 1024 int main(int argc, char *argv[]) { if( argc < 3 ) {
二进制文件的读写,当前时间写入到dat文件中,可以读入读出.C#源代码
二进制文件的读写,当前时间写入到dat文件中,可以读入读出.C#源代码 用VisualStudio2008创建 http://download.csdn.net/user/gouyue下载
java C读取二进制文件方式
参考博客:http://blog.csdn.net/liuyanfeier/article/details/60957171 我在hadoop中存取了10个float数据,分别为0.1 1.1……9.1 看到输出的结果是正确的,然而保存成二进制用C进行读取的时候发现数据很乱,并不是我想要的。由于输出时对的,然而C二进制读取出现问题,怀疑是java和C读取二进制的方式不同。 主要
C# 二进制文件内容写入类BinaryWriter
程序设计界面 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; usi...
BinaryWriter和BinaryReader(二进制文件的读写)
C#的FileStream类提供了最原始的字节级上的文件读写功能,但我们习惯于对字符串操作,于是StreamWriter和 StreamReader类增强了FileStream,它让我们在字符串级别上操作文件,但有的时候我们还是需要在字节级上操作文件,却又不是一个字节 一个字节的操作,通常是2个、4个或8个字节这样操作,这便有了BinaryWriter和BinaryReader类,它们可以将一个字
c语言读写二进制文件
下面是一个c语言读写二进制文件的一个例子 void read_write_file(){ const int MAXLEN =1024; FILE * outfile, *infile; outfile = fopen(&quot;F:\\training video\\_back\\2.wmv&quot;, &quot;wb&quot; ); infile = fopen(&quot;F:\\training v...
C语言之二进制读写文件
来源:我的博客站 OceanicKang |《C语言之二进制读写文件》 一、二进制读写 size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream) - 读 size_t fwrite(void *ptr, size_t size, size_t nmemb, FILE *stream) - 写 参数 ...
如何提取大端存储(Big-Endian)二进制文件中的数据,并输出到txt中
如何提取大端存储(Big-Endian)二进制文件中的数据,并输出到txt中。matlab实现
Java C++ 读写文件大小端格式是不同的
Java 写文件采用的是大端模式,例如写入一个int(10)到文件中, Java的内存结构 10从高位到低位分别是00(&0x0001 低地址) 00(&0x0002) 00(&0x0003) 0A(&0x0004 高地址) 其中00在低地址 0A在高地址 大端(高位 对应的 低地址) 将10写入文件内容 00 00 00 0A 从低地址开始写 C 使用 fread 从文件中读
linux上使用open读取一个二进制文件
在实际项目中用到了二进制文件de
C/C++:文本文件和二进制文件的读写
文本文件和二进制文件在计算机中的存储都是以0,1存储的,所不同的就是声明方式;在C语言中,对于文本文件和二进制文件的读写,应该如何进行呢?如何把数据保存为.txt文件?如何读取.txt文件中的数据?本经验主要包括以下几部分:1、C++基础:数据流,缓冲区,文件类型2、C语言:缓冲区文件处理:3、文件读写流程:4、文本文件操作:5、格式化存取函数6、二进制文件操作工具/原料Visual Studio...
linux C 读二进制文件和文件读取
access():判断是否具有存取文件的权限 相关函数     stat,open,chmod,chown,setuid,setgid 表头文件     #include 定义函数     int access(const char * pathname, int mode); 函数说明     access()会检查是否可以读/写某一已存在的文件。参数mode有几种情况组
C与C++的二进制文件读写实验
C与C++的二进制文件读写实验 前言:文件主要分为文本文件和二进制文件。相对于编码固定的文本文件,使用二进制文件编码自由,而且大小一般比文本文件要小得多。因为数据库作业的要求,所以在此探索一下C与C++下的二进制文本文件读写。 C下的二进制文件读写 主要使用的是stdio.h中的file系列函数: 1. FILE* fopen(const char* filename,const...
C语言fseek、fread、fwrite读写二进制文件
C语言读写二进制文件的使用
C/c++与java之间的二进制文件相互读取
C/ C++写入二进制数据的的字节顺序是从低到高(左低到右高),   而java.io.DataoutputStream写入的数据是从高到低(左高到右低)。这样在两种文件进行互操作时,进必须要进行转换,交互字节顺序。下面以C读取java二进制文件为例,给出一种可行的转换方式。          #include int main() { //本程序实现将用java写入的二进制文件用C读取
fseek与C语言二进制文件读写实例
<br />fseek<br />  函数名: fseek<br />  功 能: 重定位流上的文件指针<br />  用 法: int fseek(FILE *stream, long offset, int fromwhere);<br />  描 述: 函数设置文件指针stream的位置。如果执行成功,stream将指向以fromwhere为基准,偏移offset个字节的位置。如果执行失败(比如offset超过文件自身大小),则不改变stream指向的位置。<br />  返回值: 成功,返回0,否则
matlab写入二进制文件与C语言读取二进制文件
最近需要将matlab下开发的算法转为C程序,其中第一步涉及
读取二进制文件特定位置的某些字节
最简单的方式,取得文件的所有字节数,然后再处理 byte[] test = File.ReadAllBytes(file).Skip(50).Take(10).ToArray();
sqlite3二进制文件操作
1.写二进制数据 sqlite3 * db; int result; char **errmsg =NULL; result = sqlite3_open(“test.db”, &db ); if( result != SQLITE_OK ) { return -1;} result = sqlite3_exec( db,”create
python与C的数据二进制读写
python数据保存为二进制可以用struct,打包成二进制,再写进文件import struct a=[1.1,2.3] data_byte=struct.pack('f'*2,*tuple(a)) with open('data.bin','wb') as f: f.write(data_byte)#data_raw=struct.unpack('ff',data_byte)C读取二进制
C#中文本文件与二进制文件
一、文本文件与二进制文件的定义     大家都知道计算机的存储在物理上是二进制的,所以文本文件与二进制文件的区别并不是物理上的,而是逻辑上的。这两者只是在编码层次上有差异。     简单来说,文本文件是基于字符编码的文件,常见的编码有ASCII编码,UNICODE编码等等。二进制文件是基于值编码的文件,你可以根据具体应用,指定某个值是什么意思(这样一个过程,可以看作是自定义编码)。    
C中二进制方式读取写入文件简单实验
#include #include #include using namespace std; int main(int argc, char* argv[]) {  char *strArr = new char[2];  FILE* file1 = fopen("C:\\Users\\Administrator\\Desktop\\a.txt", "r");  FILE*
读取二进制文件的中文乱码问题
问题描述: 在linux下开发的项目,转移到windows环境,运行后,发现出现中文乱码。 追根溯源: 逐步debug,发现并非在网络传输过程中出现乱码问题(若是,可通过对request、response设置编码,setCharacterEncoding("utf-8")解决),而是在读取二进制文件时,未指定编码的原因。 项目中使用了DataInputStream的readByte
c语言实现大小端判断和二进制模式写入各种数据到文件
#include #include #include //测试大小端模式 void test_endian() { uint32_t i=0x04030201; unsigned char* cp=(unsigned char*)&i; if(*cp==1) printf("little-endian\n"); else if(*cp==4)
C/C++文件的操作--二进制文件读写
int a=1; float b= 1.2; FILE *pOutFile = fopen( "你的文件名 ", "w+b " ); BYTE* temp; int offset=0; temp = new BYTE
c++读写二进制文件
c++读写二进制文件,在windows与linux下可能会有不同的效果。本人写的一个小例子在linux下写入二进制数据正常,而在windows下面写入数据的过程中,竟然自动添加了0x25等等一些无意义的字节,找了好久才发现这个bug。 下面是正确的写法 void TestWriteBinary() { const char *pcwritefile = "fileBinary.txt";
C语言二进制方式读写文件数据
fwrite(buffer, size, count,fp):以二进制的形式向指定的文件中写入若干数据项(由count决定),返回实际写入的数据项数目,各参数含义如下: buffer:一个存储区的起始地址,以该地址开始的存储区的数据即是保存到文件中的数据,可以是数组或指针类型; size:单个数据项的大小(单位:字节); count:数据项数量; fp:FILE类型指针,该指针对应的文件即...
Linux下用C语言fopen、fread和fwrite函数对二进制文件的操作
一、前言 在做一个镜头的初始化操作,需要加载一个648*522像素大小的文件,厂商提供的是一个excel表,如果要加载数据,可用加载txt文本的方式,我选用二进制方式加载文件;大家都知道电脑真正执行的不是高级语言,而是0和1的二进制文件,而且不管你是几维的数据,存放计算机内存上的数据是一维,而且按一定顺序执行下来(虽然操作系统原理介绍到在宏观上有并行处理,但微观上还是串行执行的)。所以直接加载二...
VC对大型数据文件的读取&读取二进制文件
笔者前不久曾遇到一个问题,解决之后的经验愿与大家分享。问题是这样的,有一批数据文件,数据格式如下: 日期,开盘,最高,最低,收盘,成交量,成交金额  1996年5月13日,636.96,636.96,636.96,636.96,0,0, 1996年5月14日,641.61,641.61,641.61,641.61,0,0, 1996年5月15日,637.83,637.83,637.83,6
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 java写机器学习 java写深度学习