我正在尝试从c中读取stdin的十六进制输入。输入已经是十六进制格式,例如,输入看起来像这样616263.我想从stdin读取它并将其解释为unsigned long int msg = 0x616263;
我知道stdin只读取ascii字符,但有没有办法将其解释为十六进制值?
答案 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);
代码需要进行错误检查。