12
votes

problème de fonction itoa

Je travaille sur Eclipse à l'intérieur de l'environnement Ubuntu sur mon projet C ++.

J'utilise la fonction itoa (qui fonctionne parfaitement sur Visual Studio) et le compilateur se plaint que ITOA est non déclaré.

J'ai inclus , , qui n'aide pas.


2 commentaires

S'il vous plaît poster votre code, il est difficile d'aider sans elle


@CHARLESB: Ce problème est très facile à diagnostiquer sans code. Il n'est pas nécessaire de poster le code ici.


6 Réponses :


0
votes

Avez-vous compris STDLIB.H? (Ou plutôt, puisque vous utilisez c ++, cstdlib)


1 commentaires

Cela ne va pas nécessairement aider, car itoa n'est pas standard.



6
votes

ITOA () ne fait partie d'aucune norme pour que vous ne deviez donc pas l'utiliser. Il y a de meilleurs moyens, c'est-à-dire ...

c: xxx

c ++: xxx


2 commentaires

En fait, j'ai besoin d'ajouter un Int à une chaîne.


Alors, puis-je le faire, pas avec Ostringstream, car mon compilateur ne le reconnaît pas.



10
votes

www.cplusplus.com dit:

cette fonction n'est pas définie dans ANSI-C et ne fait pas partie de C ++, mais est pris en charge par certains compilateurs.

Par conséquent, je suggère fortement que vous ne l'utilisiez pas. Cependant, vous pouvez y parvenir tout à fait assez simple en utilisant stringstream comme suit: xxx


3 commentaires

Merci, je l'ai essayé dans Visual Studio et cela ne le reconnaît pas, dois-je inclure quelque chose?


Erreur 4 Erreur C2079: 'StreamStringkey' utilise une classe non définie 'stdd :: basic_stringstream <_elem, _traits, _ALLOC>' H: \ workspace \ hw5 \ hw5 \ véhicule.cpp 151


Erreur 8 Erreur C2228: à gauche de '.str' doit avoir la classe / structure / union H: \ Workspace \ hw5 \ hw5 \ \ hw5 \ hw5 \ véhicule.cpp 154 ​​Erreur 6 Erreur C2297: '<<': Un opérande illégal et droit a du type 'Char < i> const 'h: \ workspace \ hw5 \ hw5 \ véhicule.cpp 153 const cordes véhicule :: getkey () const {stringstream rationnstringkey; StreamStringkey << gettypenum (); StreamStringkey << m_licenseid; // m_licenseid est Char String Stringkey = StreamStringKey.str (); retourner StreamStringkey; }



5
votes

Boost Way:

string str = boost :: lexical_cast (n);


0 commentaires

1
votes

ITOA dépend du compilateur, il est donc préférable d'utiliser les méthodes suivantes: -

Méthode 1: Si vous utilisez C ++ 11, allez chercher std :: to_string. Cela fera le tour. P>

Méthode 2: Sprintf fonctionne pour C & C ++. ex- Ex - to_string p> xxx pré>

Remarque - Compilez à l'aide de -std = c ++ 0x. p>

C ++ Sprintf: P>

int main ()
{
int i;
  char buffer [100];
  printf ("Enter a number: ");
  scanf ("%d",&i);
  sprintf(buffer, "%d", i);
  return 0;
}`


0 commentaires

1
votes

Vous pouvez utiliser 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;


0 commentaires