在C中从控制台获取十六进制值

在C中从控制台获取十六进制值,c,console,C,Console,我正在研究C语言。我想从控制台获取十六进制值。比如说 argv[1] = "0xABCFFABC" 我想将值存储在一个无符号字符数组中,所以最后我想得到如下结果: unsigned char hex[4] = {0xAB, 0xCF, 0xFA, 0xBC} 然后我处理信息,我需要做相反的过程:从和十六进制值{0xFF,0xAB,0x01,0x0A}到一个字符串“0xFFAB010A”???并在控制台上打印最终值 对于argv[1]到hex[4],您可以将上面的chux方法与argv[1]+

我正在研究C语言。我想从控制台获取十六进制值。比如说

argv[1] = "0xABCFFABC"
我想将值存储在一个无符号字符数组中,所以最后我想得到如下结果:

unsigned char hex[4] = {0xAB, 0xCF, 0xFA, 0xBC}

然后我处理信息,我需要做相反的过程:从和十六进制值
{0xFF,0xAB,0x01,0x0A}
到一个字符串
“0xFFAB010A”
???并在控制台上打印最终值

对于
argv[1]
hex[4]
,您可以将上面的chux方法与
argv[1]+2
as
buf
hex[0]
as
byte1
等一起使用

hex[4]
转换为字符串并打印,可按如下方式完成:

    char string[2+4*2+1];
    sprintf(string, "0x%02X%02X%02X%02X", hex[0], hex[1], hex[2], hex[3]);
    printf("%s\n", string);

试试看,给我们看一些代码。提示:scanf或strtol.
if(sscanf(buf,“%2hhX%2hhX%2hhX%2hhX”、&byte1和byte2,…)=4{