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