我有一个
int num = 69;
我想要一个字符串,其十六进制值为“ 7E ”
char result;
sprintf(&result, %X, num);
似乎工作但只给我拳头' 7 '我怎么能得到“ 7E ”?
答案 0 :(得分:1)
结果的问题是它有一个字符的空间,而不是两个+ null终止符。你需要至少三个char
。
以下是如何做到这一点:
char buf[9]; // Make the buffer larger to fit bigger numbers
sprintf(buf, "%02X", num);
在Objective-C中你可以这样做:
NSString *res = [NSString stringWithFormat:@"%0X", num];
答案 1 :(得分:1)
sprintf生成一个字符串。 结果是一个字符。重新声明它并删除&
char result[10]; // or something
sprintf(result, "%X", num);
答案 2 :(得分:0)
你需要足够的缓冲区用于十六进制字符串,因为char只能给你1个字符的缓冲区。
int main()
{
int num=69;
char *hex_string = new (char[2]);
sprintf(hex_string, "%X", num);
delete(hex_string);
return 1;
}