-2

値を追加するのではなく、2 つの整数を連結したいのですが、それらを結合します。

例えば:

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

a23の代わりに次のようにする必要があり5ます。

どうやってやるの?

4

6 に答える 6

4

整数のように見えるからといって、整数であるとは限りません。あなたの場合、整数に対して文字列操作を実行しようとしています。あなたが本当に欲しいのは、使用することstd::stringです:

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

結果を として使用する場合は、C++11 でint使用できます。std::stoi(a)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 の String Formattersは一見の価値があります。

于 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 になりたいですか? a=2あなたの b はあなたのadd ステートメントで完全に無視されますa+3

于 2012-11-12T15:44:40.220 に答える
0

Cでは、int to alphabet functionを使用できますitoa(int1,str1,10)

2 つの整数を文字列として連結するコード:

#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 に答える