Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

error: `itoa` was not declared in this scope

Tags:

I have a sample c file called itoa.cpp as below:

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

When i compile the above code with the below command:

 gcc itoa.cpp -o itoa 

i am getting this error:

 [root@inhyuvelite1 u02]# gcc itoa.cpp -o itoa itoa.cpp: In function "int main()": itoa.cpp:10: error: "itoa" was not declared in this scope 

What is wrong in this code? How to get rid of this?

like image 477
vchitta Avatar asked Jun 24 '11 03:06

vchitta


1 Answers

itoa is not ansi C standard and you should probably avoid it. Here are some roll-your-own implementations if you really want to use it anyway:

http://www.strudel.org.uk/itoa/

If you need in memory string formatting, a better option is to use snprintf. Working from your example:

#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; } 
like image 68
Mikola Avatar answered Oct 11 '22 13:10

Mikola