sscanf保存到矢量

时间:2013-09-01 11:01:48

标签: c++ vector scanf

有问题的代码是:

vector<int> Data(2);    
String="ff34";
sscanf(String.c_str(), "%02x%02 ",&Data[0],&Data[1]);

如您所见,我想解析String并将数据保存到我的矢量数据中。 我真的不明白为什么这不起作用。

我得到的价值是:
数据[0] = 255 - &gt;这没关系 数据[1] = 0 - &gt;这是不起作用的

我尝试过更大的矢量,但我也一样。首先是好的,向量中的所有其他位置都是0。

3 个答案:

答案 0 :(得分:2)

你需要

"%02x%02x"代替"%02x%02 "

请参阅here

答案 1 :(得分:1)

它无法正常工作,因为格式说明符未正确写入。 %02不是有效的说明符,%02d(对于十进制整数)或%02x(对于十六进制整数)。

答案 2 :(得分:0)

代码应为:

vector<int> Data(2);
string String="ff34";
sscanf(String.c_str(), "%02x%02d",&Data[0],&Data[1]);

如果34被读为十进制整数。假设的String类型为string