将两个整数值连接到一个char数组中

时间:2012-06-30 14:12:14

标签: c++

我试图提取两个(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数组。

提前致谢

2 个答案:

答案 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