我试图提取两个(int32_t)值,并将它们放在一个char数组中。
int32_t version = getVersion();
if (version < 0)
{
return;
}
else
{
//first part of number needs to be shifted right
int32_t major = (((version) >>16) & 0xFFFF);
int32_t minor = ((version) & 0xFFFF);
// need to concatenate these two values, and place a "." between them
setVersion(...);//requires a char array, should for example be "1.1"
}
任何人都可以就最好的方法给我任何建议吗?请不要使用std :: strings。 我更喜欢char数组。
提前致谢
答案 0 :(得分:6)
您可以使用strstream
char v[255] = {};
{
std::strstream vs(v, 254);
vs << major << '.' << minor;
}
setVersion(v);
答案 1 :(得分:0)
这是另一种方法。
snprintf(charArray, sizeof(charArray), "%d.%d", major, minor);
// Please check the correctness for format specifier and verify the return
// value too.
如果您使用的是Windows平台,请使用_snprintf_s
。