私はC++プロジェクトでUbuntu環境内のEclipseに取り組んでいます。
itoa
関数(Visual Studioで完全に機能します)を使用しましたが、コンパイラーitoa
は宣言されていないと文句を言います。
、、を含めました<stdio.h>
が、役に立ちません。<stdlib.h>
<iostream>
私はC++プロジェクトでUbuntu環境内のEclipseに取り組んでいます。
itoa
関数(Visual Studioで完全に機能します)を使用しましたが、コンパイラーitoa
は宣言されていないと文句を言います。
、、を含めました<stdio.h>
が、役に立ちません。<stdlib.h>
<iostream>
www.cplusplus.comによると:
この関数はANSI-Cで定義されておらず、C ++の一部ではありませんが、一部のコンパイラでサポートされています。
したがって、使用しないことを強くお勧めします。stringstream
ただし、次のように使用すると、これを非常に簡単に実現できます。
stringstream ss;
ss << myInt;
string myString = ss.str();
itoa()
は標準の一部ではないため、使用しないでください。より良い方法があります、すなわち。
C:
int main() {
char n_str[10];
int n = 25;
sprintf(n_str, "%d", n);
return 0;
}
C ++:
using namespace std;
int main() {
ostringstream n_str;
int n = 25;
n_str << n;
return 0;
}
ブースト方法:
string str = boost::lexical_cast<string>(n);
itoaはコンパイラに依存するため、次の方法を使用することをお勧めします:-
方法1:c ++ 11を使用している場合は、std::to_stringに移動します。それはトリックを行います。
方法2:sprintfはcとc++の両方で機能します。ex- ex --to_string
#include <bits/stdc++.h>
using namespace std;
int main ()
{
int i;
char buffer [100];
printf ("Enter a number: ");
scanf ("%d",&i);
string str = to_string(i);
strcpy(buffer, str.c_str());
cout << buffer << endl;
return 0;
}
注--std=c++0xを使用してコンパイルします。
C ++ sprintf:
int main ()
{
int i;
char buffer [100];
printf ("Enter a number: ");
scanf ("%d",&i);
sprintf(buffer, "%d", i);
return 0;
}`
sprintfを使用できます
char temp[5];
temp[0]="h"
temp[1]="e"
temp[2]="l"
temp[3]="l"
temp[5]='\0'
sprintf(temp+4,%d",9)
cout<<temp;
出力は:hell9になります
stdlib.hを含めましたか?(むしろ、C ++、cstdlibを使用しているので)