-2

我想连接两个整数,这不是添加它们的值,而是加入它们。

例如:

int a=2,b;
cin>>b;
a=a+3;

a应该是类似的东西23而不是5.

我怎样才能做到这一点?

4

6 回答 6

4

仅仅因为它们看起来像整数,并不意味着它们是整数。在您的情况下,您正在尝试对整数执行字符串操作。你真正想要的是使用std::string

std::string a("2");
std::string b;
std::cin >> b;
a += b;

如果您想将结果用作int,您可以std::stoi(a)在 C++11 中使用。在 C++03 中,您可以执行以下操作:

std::stringstream ss(a);
int value;
ss >> value;
于 2012-11-12T15:39:04.317 回答
2

这会给你你想要的。

std::stringstream s;
s << 1 << 2 << 3;
int out;
s >> out;
std::cerr << out << std::endl;

Herb Sutter的 Manor Farm 的字符串格式化程序值得一看。

于 2012-11-12T15:39:13.470 回答
1

一个简单的方法是将数字乘以 10,然后加上新的整数。

编辑:其他答案更准确。如果数字可以大于 10,您需要将它们视为字符串,然后转换回 int(c_str() 上的 itoa)。如果要将它们保留为 int,则需要知道 10 的哪个幂包含您的新值,并将该数字乘以该 10 的幂,以便为新数字腾出足够的空间。

于 2012-11-12T15:39:03.757 回答
0

如果您不想将数字转换为字符串,只需将前一个值乘以 10:

a = a*10 + b;

于 2012-11-12T15:39:47.413 回答
0

再看一遍:

int a=2,b;
cin>>b;
a=a+3;

你想怎么变成 23 岁?你的 b 在你的 add 语句中被完全忽略了,你有a=2,所以a+3真的是 2+3,所以 2+3 如果我记得数学大约是 5。

于 2012-11-12T15:44:40.220 回答
0

在 C 语言中,您可以使用int 转字母函数itoa(int1,str1,10)

将两个整数连接为字符串的代码:

#include <string>
#include <iostream>
using namespace std;

int main(void)
{
  int int1,int2;
  char *str1,*str2;
  str1 = new char[1];
  str2 = new char[1];
  string str;

  cout<<"concatenate two integers as strings \n";
  cout<<"Enter first number > ";
  cin>>int1;

  cout<<"Enter second number > ";
  cin>>int2;

  str=string(itoa(int1,str1,10)) + string(itoa(int2,str2,10));;

  cout<<"\n "<<str <<"\n";


  cout<<" \nPress any key to continue\n";
  cin.ignore();
  cin.get();

   return 0;

}

输出:

concatenate two integers as strings
Enter first number > 2
Enter second number > 3

 23

Press any key to continue
于 2012-11-12T16:11:23.703 回答