版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、我用的将 16 进制文本转换为 运行程序,将得到输入;例:运行: ./CSTRING 其中,文件内容为:30:31:32 就得到的 输入文件中 012 ascii 码的 C 语言代码; 16 进制文本复制到文件中,本程序能自动跳过 0 或多个分隔符(分隔符可以为任意的符号,如“:”,“ %”或空格等,判定的函数实现见 SkipDelimiter 函数);如:输入文件内容为:30 31 32 或303132 得到的都是012 cpp1. #include2. #include3. #include4. #include5. #include6. #include7. #include8. #in
2、clude9. typedef unsigned char uint8;10. uint8ConverseOneCharuint8ucChar11. 12. uint8ucTmp=0 x00;13. printf oneucChar=0 x%xn , char ucChar;14. switch ucChar15. 16. case 0 :17. ucTmp=0 x00;18. break ;19. case 1 :20. ucTmp=0 x01;21. break ;22. case 2 :23. ucTmp=0 x02;24. break ;25. case 3 :26. ucTmp=0
3、x03;27. break ;28. case 4 :29. ucTmp=0 x04;30. break ;31. case 5 :32. ucTmp=0 x05;33. break ;34. case 6 :35. ucTmp=0 x06;36. break ;37. case 7 :38. ucTmp=0 x07;39. break ;40. case 8 :41. ucTmp=0 x08;42. break ;43. case 9 :44. ucTmp=0 x09;45. break ;46. case a :47. case A :48. ucTmp=0 x0a;49. break ;
4、50. case b :51. case B :52. ucTmp=0 x0b;53. break ;54. case c :55. case C :56. ucTmp=0 x0c;57. break ;58. case d :59.case D :r;n+60.ucTmp=0 x0d;61.break ;62.case e:63.case E :64.ucTmp=0 x0e;65.break ;66.case f:67.case F:68.ucTmp=0 x0f;69.break ;70.default:71.printferrchar.n;72.return-1;73.74.returnu
5、cTmp;75.76.uint8GetOneCharuint8*pucBuf77.78.uint8ucChar=0 x00;79.if NULL=pucBuf80.81.printfparaisNULL.n;82.return-1;83.84.ucChar=ConverseOneCharpucBuf0;85.printffirstucChar=0 x%xn, char ucChar;86.ucChar=4;87.ucChar|=ConverseOneCharpucBuf1;88.printfseconducChar=%c0 x%xn, char ucChar,ucChar;89.returnu
6、cChar;90.91.int SkipDelimiteruint8*pcB n=0;94.char *pcBufTmp=char *pcBuf;95.for n=0;pcBufTmpn.=0&pcBufTmpn.=n&pcBufTmpn.=96.97.if pcBufTmpn=098.|pcBufTmpn=199.|pcBufTmpn=2100.|pcBufTmpn=3101.|pcBufTmpn=4102.|pcBufTmpn=5103.|pcBufTmpn=6104.|pcBufTmpn=7intiSrcFileLen,unsignedchar *pucDstBuf
7、105.|pcBufTmpn=8106.|pcBufTmpn=9107.|pcBufTmpn=A |pcBufTmpn=a108.|pcBufTmpn=B |pcBufTmpn=b109.|pcBufTmpn=C |pcBufTmpn=c110.|pcBufTmpn=D |pcBufTmpn=d111.|pcBufTmpn=E |pcBufTmpn=e112.|pcBufTmpn=F |pcBufTmpn=f113.114.break ;115.116.117.returnn;118.119.int ParseHexStringunsignedchar *pucSrcBuf,120.121.u
8、int8*pucSrcTmp=NULL;122.uint8*pucDstTmp=NULL;123.uint8ucTmp=0;124.int iFileLenRemain=iSrcFileLen;125.int iDelimiterNum=0;126.int n=0;127.if NULL=pucSrcBuf|NULL=pucSrcBuf128.129.printfpara1or2isNULL.n;130.return-1;131.132.pucSrcTmp=pucSrcBuf;133.pucDstTmp=pucDstBuf;134.while iFileLenRemain.=0135.136.
9、ucTmp=GetOneCharpucSrcTmp;137.printfucTmp=%cn , char ucTmp;138.pucDstTmpn+=ucTmp;139.pucSrcTmp+=2;140.iDelimiterNum=SkipDelimiterpucSrcTmp;141.printfiDelimiterNum=%dn,iDelimiterNum;142.pucSrcTmp+=iDelimiterNum;143.iFileLenRemain-=2+iDelimiterNum;144.145.returnn;146.147.int main intargc,char *argv148
10、.149. int iRet=0;150. char *pcFileForChange=NULL;151. int iSrcFd=0;152. int iDstFd=0;153. int iSrcFileLen=0;154. int n=0;155. unsigned char *pucSrcBuf=NULL;156. unsigned char *pucDstBuf=NULL;157. if argc.=2158. 159. printf youneedinputthefilenametochange.n ;160. return-1;161. 162. pcFileForChange=ar
11、gv1;163. printf filename:%sn ,pcFileForChange;164. iSrcFd=openpcFileForChange,O_RDONLY;165. if iSrcFd0166. 167. printf openfile:%sfaild.n ,pcFileForChange;168. return-1;169. 170. iDstFd=open ,O_RDWR|O_CREAT|O_TRUNC,0644;171. if iDstFd0172. 173. printf openchangefilenamefilefaild.n ;174. return-1;175
12、. 176. iSrcFileLen=lseekiSrcFd,0,SEEK_END;177. printf FileLen:%dn ,iSrcFileLen;178. lseekiSrcFd,0,SEEK_SET;179. pucSrcBuf=mallociSrcFileLen+1024;180. pucDstBuf=mallociSrcFileLen;181. memsetpucSrcBuf,0,iSrcFileLen;182. memsetpucDstBuf,0,iSrcFileLen;183. iRet=readiSrcFd,pucSrcBuf,iSrcFileLen;184. if iRet.=iSrcFileLen185. 186. printf readerr,readlen=%dn ,iRet;187. return-1;188. 189. printf read:%sn ,pucSrcBuf;190. n=ParseHexStringpucSrcBuf,iSrcFileLen,pu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 44809-2024物联网工业物联网系统设备兼容性要求和模型
- GB/T 44802-2024柔性直流输电用绝缘栅双极晶体管(IGBT)驱动器技术规范
- 高中历史 第一单元 从“朕即皇帝”到“主权在民”第1节 欧洲的君主专制教案 岳麓版选修2
- 2024秋五年级语文上册 第四单元 15 小岛教案 新人教版
- 2023六年级数学上册 6 百分数教案 新人教版
- 湖南省衡阳市高中数学 第一章 集合与函数概念 1.3 函数的基本性质 1.3.1 单调性与最大(小)值教案 新人教A版必修1
- 八年级地理上册 第二章 第三节 气候与人类活动教案1 中图版
- 2024-2025学年高中化学 第一章 物质结构元素周期律 第二节 元素周期律第3课时教案1 新人教版必修2
- 租用家庭氧气瓶合同(2篇)
- 棕榈油供销合同(2篇)
- 静脉输液治疗护理技术操作规范
- 2023年12月英语四级真题及答案-第2套
- 2024天猫男装行业秋冬趋势白皮书
- 运营内控副行长/经理资格认证考试题库(2021版)
- 办公技能竞赛试题
- 《正确对待外来文化》名师课件
- 2024年绵阳科技城新区事业单位考核公开招聘高层次人才10人(高频重点复习提升训练)共500题附带答案详解
- 韶关市仁化县教育局招聘中小学临聘教师笔试真题2022
- 七年级英语上册(人教版2024)新教材解读课件
- 电力专业数据传输(EPDT)通信系统 空中接口呼叫控制层技术规范 标准编制说明
- 中医食疗药膳学智慧树知到答案2024年四川护理职业学院
评论
0/150
提交评论