版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 注册会计师审计中其他信息的阅读识别程序
- 学生自主管理好处多多
- 自动控制系统计算机仿真 课件全套 张晓江 第1-8章 自动控制系统仿真概述-电力系统工具箱及其应用实例、符号运算
- 皮革加工厂生产工艺流程细则
- 某食品厂食品安全检验细则
- 某机械厂生产效率提升细则
- 2026浙江台州市中医院招聘心电图诊断医生(编外)1人备考题库及参考答案详解(黄金题型)
- 2026山东济南市第五人民医院招聘卫生高级人才和博士(控制总量)8人备考题库含答案详解(巩固)
- 2026春季浙商银行校园招聘备考题库带答案详解(黄金题型)
- 2026山西经济管理干部学院(山西经贸职业学院)招聘博士研究生5人备考题库及答案详解(夺冠)
- 2025-2030中国永磁无刷电机行业发展形势与前景动态预测报告
- 学术自由与责任共担:导师制度与研究生培养制的深度探讨
- 法拍司辅内部管理制度
- 道路损坏修缮协议书模板
- 2025年上海市各区高三二模语文试题汇编《现代文一》含答案
- 公司履约保函管理制度
- 全国民用建筑工程设计技术规范
- 中医专科护士进修汇报
- 国家安全教育大学生读本课件高教2024年8月版课件-第四章坚持以人民安全为宗旨
- 2025年中国建材集团浙江三狮南方新材料有限公司招聘笔试参考题库附带答案详解
- GB/T 44802-2024柔性直流输电用绝缘栅双极晶体管(IGBT)驱动器技术规范
评论
0/150
提交评论