Ошибка: `itoa` не был объявлен в этой области
У меня есть пример c файла с именем itoa.cpp, как показано ниже:
#include <stdio.h>
#include <stdlib.h>
int main ()
{
int i;
char buffer [33];
printf ("Enter a number: ");
scanf ("%d",&i);
itoa (i,buffer,10);
printf ("decimal: %s\n",buffer);
return 0;
}
Когда я скомпилирую вышеуказанный код с помощью следующей команды:
gcc itoa.cpp -o itoa
Я получаю эту ошибку:
[[email protected] u02]# gcc itoa.cpp -o itoa
itoa.cpp: In function "int main()":
itoa.cpp:10: error: "itoa" was not declared in this scope
Что не так в этом коде? Как избавиться от этого?
Ответы
Ответ 1
itoa не является стандартом ansi C, и вам, вероятно, следует избегать его. Если вы действительно хотите использовать его в любом случае, выполните некоторые свои собственные версии:
http://www.strudel.org.uk/itoa/
Если вам нужно форматирование строки памяти, лучше использовать snprintf. Работа с вашим примером:
#include <stdio.h>
#include <stdlib.h>
int main ()
{
int i;
char buffer [33];
printf ("Enter a number: ");
scanf ("%d",&i);
snprintf(buffer, sizeof(buffer), "%d", i);
printf ("decimal: %s\n",buffer);
return 0;
}
Ответ 2
Если вас интересуют только базы 10, 8 или 16., вы можете использовать sprintf
sprintf(buf,"%d",i);
Ответ 3
Посмотрите на stdlib.h. Может быть, _itoa вместо этого itoa был определен там.