可以使用的方式有很多,基本思路為打開文件,讀取文件中的數據,處理後存入新文件,最終關閉兩個文件。?
根據處理步驟,以常用的兩種方法舉例如下:
壹、由於XX替換成0xXX適用於16進制轉換, 所以可以逐個讀取16進制值,然後帶上0x輸入到新的文件中。?
參考代碼:
#include?<stdio.h>int?main()
{
FILE?*in=fopen("in.txt","r"),?*out=fopen("out.txt",?"w");//打開兩個文件。
unsigned?char?c;
while(fscanf(in,?"%02X",?&c)?!=?EOF)//循環獲取數據。
{
fprintf(out,?"0x%02X,",?c);//增加0x後輸出到新文件中。?
}
fclose(in);
fclose(out);//關閉文件。
return?0;
}
二、由於原始文件兩個16進制壹組,所以每讀到兩個16進制數據,即可認為得到壹個合法的16進制數,可以依次作為輸入輸出依據。?
參考代碼:
#include?<stdio.h>int?main()
{
FILE?*in=fopen("in.txt","r"),?*out=fopen("out.txt",?"w");//打開兩個文件。
char?c[2];
int?t;
while(1)
{
t=fgetc(in);
if((t>='0'&&?t<='9')||?(t>='a'&&?t<='f')?||?(t>='A'&&?t<='F'))//合法16進制數
{
c[0]?=?t;
c[1]?=?fgetc(in);//獲取連續兩位。
fprintf(out,?"0x%c%c,",?c[0],c[1]);//增加0x後輸出到新文件中。?
}
else?if(t==EOF)?break;//到文件尾,退出循環
}
fclose(in);
fclose(out);//關閉文件。
return?0;
}