Je travaille sur Eclipse à l'intérieur de l'environnement Ubuntu sur mon projet C ++. P>
J'utilise la fonction J'ai inclus itoa code> (qui fonctionne parfaitement sur Visual Studio) et le compilateur se plaint que
ITOA code> est non déclaré. P>
6 Réponses :
Avez-vous compris STDLIB.H? (Ou plutôt, puisque vous utilisez c ++, cstdlib) p>
Cela ne va pas nécessairement aider, car itoa code> n'est pas standard.
c: p> c ++: p> ITOA () code> ne fait partie d'aucune norme pour que vous ne deviez donc pas l'utiliser. Il y a de meilleurs moyens, c'est-à-dire ...
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.
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. EM> P> 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 code> comme suit: p>
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 i> String Stringkey = StreamStringKey.str (); retourner StreamStringkey; }
Boost Way: P>
string str = boost :: lexical_cast
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> 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;
}`
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;
S'il vous plaît poster votre code, il est difficile d'aider sans elle
@CHARLESB: Ce problème est très i> facile à diagnostiquer sans code. Il n'est pas nécessaire de poster le code ici.