Frage

Ich arbeite auf Eclipse innerhalb Ubuntu-Umgebung auf meinem C ++ Projekt.

Ich verwende die itoa Funktion (die perfekt auf Visual Studio arbeitet) und der Compiler beschwert sich, dass itoa nicht deklariert wird.

I enthalten <stdio.h>, <stdlib.h>, <iostream>, die keine Hilfe.

War es hilfreich?

Lösung

www.cplusplus.com sagt:

Diese Funktion ist nicht in ANSI-C definiert ist und nicht Teil von C ++, sondern wird von einigen Compilern unterstützt.

Deshalb würde ich empfehlen, dass Sie es nicht verwenden. Allerdings können Sie diese ganz unkompliziert mit stringstream erreichen wie folgt:

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

Andere Tipps

itoa() ist nicht Teil eines Standard, so dass Sie es nicht verwenden sollten. Es gibt bessere Wege, das heißt ...

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

Boost-Weg:

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

itoa hängt von Compiler, so besser die folgenden Methoden verwenden: -

Methode 1: Wenn Sie c ++ verwenden 11, gehen Sie einfach für std :: to_string. Es wird den Trick tun.

Methode 2: sprintf arbeitet für 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;
}

. Hinweis - Kompilierung mit -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;
}`

Sie können sprintf verwenden

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;

Ausgabe wäre: hell9

Haben Sie umfassen stdlib.h? (Oder besser gesagt, da Sie mit C ++, cstdlib)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top