C ++将多个整数存储在一个int变量中

时间:2016-07-21 00:51:06

标签: c++ int

我试图在一个int变量中存储多个整数。 像这样:

int num1 = 2;
int num2 = 6;
int num3 = num1 + num2;

但是我得到8.我想要26.我知道这是我应该期待的结果,但我想要一种将整数绑在一起而不是添加它们的方法,我不能想到更好示例

谢谢!

4 个答案:

答案 0 :(得分:5)

您可以将它们转换为字符串,添加它们并将它们转换回来(作为第二个选项效率不高)

int num3 = std::stoi(std::to_string(num1) + std::to_string(num2));

或更“肮脏”的方式(仅当num2只是一个数字时才有效)

int num3 = num1 * 10 + num2;

请注意,第一个解决方案适用于任何数字,这也意味着如果不存储数字的长度,就无法恢复原始数字

答案 1 :(得分:0)

那么,只是将数字相乘并推到预期位置呢?

int num3 = num1 * 10 + num2;

答案 2 :(得分:0)

我认为你想要连接两个字符串文字 Convert the int to string然后concatenate the two strings 这将为您提供连接字符串" 26"来自字符串" 2"和" 6" 如果你需要int 26那么你可以在连接后convert it back到一个int。 祝你好运: - )

答案 3 :(得分:-1)

你必须将它们存储为字符串,以便像这样连接它们:

string str_num1 = to_string(num1);
string str_num2 = to_string(num2);
string result = num1 + num2;

这是一个不好的方法,因为如果你使用任何不是1位的数字,它将变得太复杂,无法存储和/或提取数据。

使用矢量或对。更轻松,更轻松:

pair<int, int> presult = make_pair(num1, num2);  ///or
vector<int> vresult;
vresult.push_back(num1);
vresult.push_back(num2);  ///num1 in spot 0, num2 in spot 1

向量应该是最好的,因为它可以容纳任意大量的整数