C/C++ 讀取16進制文件的方法
1.為什么有這種需求
因為有些情況需要避免出現(xiàn)亂碼。不管什么編碼都是二進制的,這樣表示為16進制就可以啦。
2.如何讀取16進制文件
最近編程用這一問題,網(wǎng)上查了一下,感覺還是自己寫吧。
16進制數(shù)據(jù)一般是:text=0x340xb5...,就是0x開頭,之后是兩個數(shù)字十六進制數(shù)。
如果直接使用sscanf(text,"0x",&num),會把連續(xù)的數(shù)字讀進去直到遇到'x'.
如使用sscanf讀取text第一個讀到的十六進制數(shù)是0x340,誤判啦。最后,因為是4個一組,就先把4個存到數(shù)組,再讀取吧。看后面的代碼好了。
3.代碼實例:
#include <string.h> #include <stdio.h> int main () { const char a[]="0x450x110x8b0xe8"; char tmpHex[5]; int num; printf("the size of pattern:%d\n",sizeof(a)); //4*4+最后有一個'\0' for(int i=0;i<sizeof(a)-1;i+=4){ strncpy(tmpHex,a+i,4); tmpHex[4]='\0'; sscanf(tmpHex,"%x",&num); printf("%s %d\n",tmpHex,num); } return 0; }
輸出結(jié)果:
以上這篇C/C++ 讀取16進制文件的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持我們。
上一篇:淺談c++構(gòu)造函數(shù)問題,初始化和賦值問題
欄 目:C語言
下一篇:關(guān)于win32 gettimeofday替代方案
本文標題:C/C++ 讀取16進制文件的方法
本文地址:http://mengdiqiu.com.cn/a1/Cyuyan/1863.html
您可能感興趣的文章
- 04-02c語言沒有round函數(shù) round c語言
- 01-10深入理解C++中常見的關(guān)鍵字含義
- 01-10使用C++實現(xiàn)全排列算法的方法詳解
- 01-10c++中inline的用法分析
- 01-10用C++實現(xiàn)DBSCAN聚類算法
- 01-10全排列算法的非遞歸實現(xiàn)與遞歸實現(xiàn)的方法(C++)
- 01-10C++大數(shù)模板(推薦)
- 01-10淺談C/C++中的static與extern關(guān)鍵字的使用詳解
- 01-10深入C/C++浮點數(shù)在內(nèi)存中的存儲方式詳解
- 01-10深入理解C/C++混合編程


閱讀排行
本欄相關(guān)
- 04-02c語言函數(shù)調(diào)用后清空內(nèi)存 c語言調(diào)用
- 04-02func函數(shù)+在C語言 func函數(shù)在c語言中
- 04-02c語言的正則匹配函數(shù) c語言正則表達
- 04-02c語言用函數(shù)寫分段 用c語言表示分段
- 04-02c語言中對數(shù)函數(shù)的表達式 c語言中對
- 04-02c語言編寫函數(shù)冒泡排序 c語言冒泡排
- 04-02c語言沒有round函數(shù) round c語言
- 04-02c語言分段函數(shù)怎么求 用c語言求分段
- 04-02C語言中怎么打出三角函數(shù) c語言中怎
- 04-02c語言調(diào)用函數(shù)求fibo C語言調(diào)用函數(shù)求
隨機閱讀
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
- 04-02jquery與jsp,用jquery
- 01-10delphi制作wav文件的方法
- 01-10C#中split用法實例總結(jié)
- 08-05DEDE織夢data目錄下的sessions文件夾有什
- 08-05織夢dedecms什么時候用欄目交叉功能?
- 01-11ajax實現(xiàn)頁面的局部加載
- 01-10使用C語言求解撲克牌的順子及n個骰子