有问题的代码是:
vector<int> Data(2);
String="ff34";
sscanf(String.c_str(), "%02x%02 ",&Data[0],&Data[1]);
如您所见,我想解析字符串并将数据保存到我的向量数据中。我真的不明白为什么这不起作用。
我得到的值是:
Data[0]=255 -> 这没问题
Data[1]=0 -> 这不起作用
我尝试过使用更大的向量,但我得到了相同的结果。第一个位置还可以,向量中的所有其他位置都是 0。
它不起作用,因为格式说明符没有正确编写。%02
不是有效的说明符,%02d
(对于十进制整数)或%02x
(对于十六进制整数)是。
代码应该是:
vector<int> Data(2);
string String="ff34";
sscanf(String.c_str(), "%02x%02d",&Data[0],&Data[1]);
if34
被读取为十进制整数。而且假定的类型String
是string
.