假设test.txt文件有以下内容:
0x00,0x12,0x00,0x00,0xc2,0x00,0x00,0xff,0x22,0x00,0xee,0x00,0x00,0x1d,0x00,0x00,0x12,0x00,0xcd,0x12,0x00,0x00,
0x12,0x00,0x45,0xde,0x00,0x00,0xff,0x00,0x00,0x12,0x00,0x00,0xff,0x00,0x00,0x12,0x00,0x00,0xee,0x00,0x00,0x33,
0x00,0x00,0x12,0x00,0x21,0x12,0x00,0x00,0x04,0x00,0x00,0x1f,0x00,0x00,0x12,0x00,0x00,0x32,0x00,0x00,0x33,0x00,
功能:将读取上述test.txt文件中的数字字符串,并将每个字符串如"0x00",“0x12”转换为数值0x00,0x12,并将这些所有转换的数值写到二进制文件中。
思路:先判断读取文件中每个字符是否是有效的16进制数,如果不是,则舍弃,继续读下一个字符,如果是则将该字符存放在二维数组的某一行,直到下一个字符不是16进制字符,则换行存储,即将下一个16进制字符存放在二维数组的下一行的第一个...将所有16进制字符存放在二维数组中,再使用sscanf()将二维数组中的每一行字符串转换为数值,存放在另一个数组中,再使用fwrite将该数组中的数值写到二进制文件中。
string2bin.c:
#define MAX_NUM 1024
int isHexnum(char c)/*判断字符是否是十六进制中的字符*/
{
if ((c >='0' && c <= '9') || (c >=