Domanda

Sto lavorando su Eclipse all'interno dell'ambiente di Ubuntu sul mio C ++ progetto.

Io uso la funzione itoa (che funziona perfettamente su Visual Studio) e il compilatore si lamenta che itoa è sommerso.

I incluso <stdio.h>, <stdlib.h>, <iostream> che non aiuta.

È stato utile?

Soluzione

www.cplusplus.com dice:

Questa funzione non è definita in ANSI-C e non è parte di C ++, ma è supportato da alcuni compilatori.

Quindi, mi piacerebbe suggeriscono fortemente che non ne fanno uso. Tuttavia, è possibile ottenere questo abbastanza semplicemente utilizzando stringstream come segue:

stringstream ss;
ss << myInt;
string myString = ss.str();

Altri suggerimenti

itoa() non è parte di qualsiasi standard, quindi non si dovrebbe usare. Ci sono modi migliori, cioè ...

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

modo Boost:

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

itoa dipende compilatore, quindi meglio utilizzare i seguenti metodi: -

Metodo 1: Se si utilizza C ++ 11, basta andare per std :: to_string. Si farà il trucco.

Metodo 2: sprintf funziona sia per 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;
}

Nota -. Compilazione usando -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;
}`

è possibile utilizzare 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;

uscita sarebbe: hell9

Si è inclusa stdlib.h? (O meglio, dal momento che si sta utilizzando C ++, cstdlib)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top