Я работаю над Eclipse в среде Ubuntu в своем проекте C++.
Я использую функцию itoa
(которая отлично работает в Visual Studio), и компилятор жалуется, что itoa
не объявлена.
Я включил <stdio.h>
, <stdlib.h>
, <iostream>
, что не помогает.
Я работаю над Eclipse в среде Ubuntu в своем проекте C++.
Я использую функцию itoa
(которая отлично работает в Visual Studio), и компилятор жалуется, что itoa
не объявлена.
Я включил <stdio.h>
, <stdlib.h>
, <iostream>
, что не помогает.
www.cplusplus.com говорит:
Эта функция не определена в ANSI-C и не является частью C++, но поддерживается некоторыми компиляторами.
Поэтому я настоятельно рекомендую вам не использовать его. Однако вы можете добиться этого довольно просто, используя stringstream
следующим образом:
stringstream ss;
ss << myInt;
string myString = ss.str();
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;
}
Способ повышения:
string str = boost::lexical_cast<string>(n);
itoa зависит от компилятора, поэтому лучше использовать следующие методы: -
метод 1: если вы используете С++ 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;
}
Примечание. Компилируйте с использованием -std=c++0x.
С++ спринтф:
int main ()
{
int i;
char buffer [100];
printf ("Enter a number: ");
scanf ("%d",&i);
sprintf(buffer, "%d", i);
return 0;
}`
вы можете использовать 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
Вы включили stdlib.h? (Вернее, поскольку вы используете C++, cstdlib)
itoa
нестандартен.
- person Keith Thompson; 13.09.2011