Cc++程序求助,实现2个hex文件的比较

Cc++程序求助,实现2个hex文件的比较,第1张

打开这些数据 然后将文件内容转换成数组 在这里 我帮你用的是二维数组 如果你不想用二维数组保存 可以修改一下 大体都一致的

另外,我用的方法中,读取文件用的是C语言的方法 其实和C++一样的 只不过后者是对象化的 *** 作 你要是不想用C的 可以更改其中的文件 *** 作函数成C++

最近在做编译器 对于文件的读写的各种 *** 作都比较熟悉 今天无意中看到你的问题 随便就拿来做了 有些地方和过程可以更细化 不过我没时间 有什么不懂或者特别要求 可以直接找我 方式很简单 直接用百度的这个号给我发信息就行了

考虑到你的芹手要求不够具体 我没有将最后的1 2 3什么的编号去掉 另外 我这个小程序可以读取所有这种数据格式 如果你要去掉最后的编号 可以自己加入去除代码或找我帮忙

还有一点提示你,以后如果要做这方面的工作,学会对文件的 *** 作和各种不同样式的内容的特殊处理 *** 作是很有很必要的 特别是编译器方面的工作 你可以学习编译原理这一门功课 它几乎汇集了各种文件 *** 作和结构算法等等方面的知识 更是对计算机程序的一个深入

以下是代码(代码很简单短小 收集在一个文件中 直接用VC6建个C++的普通DOS工程粘贴过去就能运行了 另外 如果直接复制进VC6有混乱和无法识别的字符 请自己慢慢修改一下 把所有注释弄到一行中 在我这里是完全能够运行 并很美观的 如果还是不行 直接找我 我发文件给你)

///////////////////////////////////////

//////////////

//////////////2010-1-16 tt

//////////////

///////////////////////////////////////

#define MAX_H 10 //能够读取的最多行数

#define MAX_L 10 //能够读取的最多列数

#define MAX_NUM 10 //临时字符串数组最大值(可支持的小数点有效长度)要求:以上三个数值必须大于或等于实际最大用量

#include<iostream>

using namespace std

int main()

{

char file[100] //打开文件目录变量

FILE *pfile

cout<<"请输入你要打开的文件目录和文件名"<<endl

cin>>file

pfile=fopen(file,"r")

// pfile=fopen("1.txt","r") //这里不必理会 如果注释掉前三行 再取消雹伍这行的注释 默认打开的文件就是工程目录下的1.txt

if(pfile==NULL)

else

{

float m_a[MAX_H][MAX_L] //最终所有数据将保存进此二维数组中

int n=0 //临时的当前读到的字符串长度

int h=0 //对应的行

int l=0 //对应的列

char ch=getc(pfile) //开始读取第一个字符

while(ch!=EOF) //读取内容 直到文件结束

{

char str[MAX_NUM]="" //格式化为浮点数前的临时字符串数组变量(此变量需要自动清空)

while(1) //这里可以自行更改 我定义成了无限循环(当然,下面有跳出循环语句,否则是死循环)

{ //此下的过程方法有几种 可以自己更改 这里用了最简单明了的一种

if(ch==' ') //当遇上空格时 停止读取

{

m_a[h][l]=atof(str) //并将读取到的内容用标准的字符串转换浮点数函数转换并保存进结果的二维数组中

n=0 //保存完成后 将字符串下标恢复到0

l++ //保存完成后 将二维数组中列数加1 等待下次的数据加入新列数组源首或中

ch=getc(pfile) //读取下一字符

break //退出循环 使得中间字符串归空

}

else if(ch=='\n') //当遇到回车时 (情况类同上面的遇上空格)

{

m_a[h][l]=atof(str)

n=0

l=0

h++ //这里的不同是 回车之后 要将二维数组的行数加1,就是前标前1

ch=getc(pfile)

break

}

else if(ch==EOF)

{

m_a[h][l]=atof(str)

n=0

l=0

h++ //与回车不同的是 遇到结束符后 不再读取内容 也就没了getc *** 作了

break

}

else //如果不是空格也不是回车也不是结束时量中

{

str[n]=ch //将读取到的字符内容保存在临时的字符串中 等待遇上以上某种情况后处理并保存进数组变

ch=getc(pfile) //继续读取字符

n++//字符串数组下标加1 以便下一字符加入进来

}

}

}

//以下用于测试结果`` //想有更多功能内容 应该在此后加入

for(int i=0i<=6i++)

{

for(int j=0j<=8j++)

{

cout<<m_a[i][j]<<" "

}

cout<<endl

}

fclose(pfile) //关闭读取的文件

}

return 0

}

Keil软件编写汇编程序。hex文件用Keil软件编写汇编程序编写的。Hex文件是可以烧写到单片机中,被梁高单片机执行的一种文件格式,生成Hex文件的蚂正方式由很多种,可以通过不同的编译器将闷渣悔C程序或者汇编程序编译生成hex。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12525831.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存