12

私はC++プロジェクトでUbuntu環境内のEclipseに取り組んでいます。

itoa関数(Visual Studioで完全に機能します)を使用しましたが、コンパイラーitoaは宣言されていないと文句を言います。

、、を含めました<stdio.h>が、役に立ちません。<stdlib.h><iostream>

4

6 に答える 6

11

www.cplusplus.comによると:

この関数はANSI-Cで定義されておらず、C ++の一部ではありませんが、一部のコンパイラでサポートされています。

したがって、使用しないことを強くお勧めします。stringstreamただし、次のように使用すると、これを非常に簡単に実現できます。

stringstream ss;
ss << myInt;
string myString = ss.str();
于 2010-09-26T20:36:22.173 に答える
7

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;
}
于 2010-09-26T20:17:43.400 に答える
5

ブースト方法:

string str = boost::lexical_cast<string>(n);

于 2010-09-26T21:00:45.080 に答える
1

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;
}

注--st​​d=c++0xを使用してコンパイルします。

C ++ sprintf:

int main ()
{
int i;
  char buffer [100];
  printf ("Enter a number: ");
  scanf ("%d",&i);
  sprintf(buffer, "%d", i);
  return 0;
}`
于 2015-09-06T05:28:47.050 に答える
1

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になります

于 2017-07-18T06:14:29.773 に答える
0

stdlib.hを含めましたか?(むしろ、C ++、cstdlibを使用しているので)

于 2010-09-26T20:14:40.260 に答える