'itoa': The POSIX name for this item is deprecated

23.8k Views Asked by At

I'm trying to convert an int into a string by doing this:

int id = 12689;
char snum[MAX];
itoa(id, snum, 10);

I get the following error:

'itoa': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _itoa.

3

There are 3 best solutions below

0
Weather Vane On

That is MSVC doing that to you. If you add the following line before any library #includes

#define _CRT_NONSTDC_NO_DEPRECATE

the warning is suppressed, similar for many other functions too.

Moreover if you add these two lines as well, MSVC will stop telling you to use scanf_s instead of the standard function scanf (and others).

#define _CRT_SECURE_NO_WARNINGS
#define _CRT_SECURE_NO_DEPRECATE  
1
Edwin Buck On

Please use snprintf, it is more portable than itoa.

char buffer[10];
int value = 234452;
snprintf(buffer, 10, "%d", value);

itoa is not part of standard C, nor is it part of standard C++; but, a lot of compilers and associated libraries support it.

0
AnT stands with Russia On

There has never been a standard itoa function in C standard library. So, trying to use it is not a good idea in any case. In C you have functions from sprintf family that will happily perform that conversion for you.