从c中的标准输入读取十六进制

时间:2017-05-19 13:18:56

标签: c hex stdin

我正在尝试从c中读取stdin的十六进制输入。输入已经是十六进制格式,例如,输入看起来像这样616263.我想从stdin读取它并将其解释为unsigned long int msg = 0x616263;

我知道stdin只读取ascii字符,但有没有办法将其解释为十六进制值?

2 个答案:

答案 0 :(得分:1)

使用strtoul与base 16 http://www.cplusplus.com/reference/cstdlib/strtoul/

char temp[] = "616263";

number = strtoul(temp,0,16);

答案 1 :(得分:1)

阅读字符串,用strtol()

解释
char datafromstdin[] = "616263";
int x = strtol(datafromstdin, NULL, 16);

代码需要进行错误检查。