




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、我用的將 16 進制文本轉(zhuǎn)換為 運行程序,將得到輸入;例:運行: ./CSTRING 其中,文件內(nèi)容為:30:31:32 就得到的 輸入文件中 012 ascii 碼的 C 語言代碼; 16 進制文本復(fù)制到文件中,本程序能自動跳過 0 或多個分隔符(分隔符可以為任意的符號,如“:”,“ %”或空格等,判定的函數(shù)實現(xiàn)見 SkipDelimiter 函數(shù));如:輸入文件內(nèi)容為: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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 如何提高團隊建設(shè)的成效計劃
- 酒店業(yè)酒店服務(wù)標(biāo)準(zhǔn)化的提升策略
- 超聲科常見疾病診斷與治療策略
- 有效時間管理策略制定計劃
- 食品飲料行業(yè)營銷活動創(chuàng)新案例
- 浙江2025年01月浙江省平陽縣企事業(yè)單位2025年面向全球引進10名博士筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 跨學(xué)科視角下的臨床前藥效研究進展及展望
- 小學(xué)數(shù)學(xué)教研學(xué)習(xí)精心設(shè)計開放題培養(yǎng)學(xué)生創(chuàng)新思維的有效途徑五六年級段
- 浙江專用2025版高考?xì)v史大二輪復(fù)習(xí)熱詞15海洋意識學(xué)案
- 財務(wù)預(yù)測與決策分析企業(yè)戰(zhàn)略規(guī)劃的關(guān)鍵
- 高鈣血癥護理查房課件
- 圍填海項目生態(tài)保護修復(fù)方案編制技術(shù)指南(試行)
- 物體打擊傷亡事故應(yīng)急處置卡
- 2024-2030年中國飛機AFP和ATL復(fù)合材料行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略分析報告
- 七年級英語上冊(人教版2024)新教材解讀課件
- 中醫(yī)食療藥膳學(xué)智慧樹知到答案2024年四川護理職業(yè)學(xué)院
- NB/T 11431-2023土地整治煤矸石回填技術(shù)規(guī)范
- 中醫(yī)師承跟師筆記50篇
- 聚乳酸-標(biāo)準(zhǔn)規(guī)程
- 任務(wù)型閱讀-小升初英語專項練習(xí)(譯林版三起)
- 部編版語文二年級下冊第三單元教材解讀大單元集體備課
評論
0/150
提交評論