自己在写程序的时候经常用到保存大量的图片,从而对其编号,所以要把整型转换成字符型。
通常自己定义string,而字符使用char[],把整形转换成char类型,然后和string类型相加,但是在VS2012中遇到了The POSIX name for this item is deprecated. Instead, use the ISO C++ conform错误。
解决方法:
1.应该是安全性问题,我使用了_itoa_s函数,不过这个函数使用4个参数,有问题大家可以搜索这个函数的用法。参考如下:
_itoa_s 函数原型如下: errno_t _itoa_s( int value,char *buffer,
size_t sizeInCharacters, //存放结果的字符数组长度
int radix);
2.网上别人重写了这个函数,代码如下(好像负数会有问题)。
char* IFLY_itoa(int nValue, char *szString, int radix)
{
int i=0, Len=0;
int nTemp=nValue;
char *lpString=szString;
/* 获得符号 */
if(nValue <0)
{
lpString[0] = '- ';
lpString++;
nTemp *= -1;
}
/* 倒序录入szString */
for(i=0; nTemp != 0 ; i++)
{
lpString[i] = nTemp%radix;
/* 进行数值向符号的转化 */
if(lpString[i] <=9)
{
lpString[i] += 0x30;
}
else
{
lpString[i] += 0x37;
}
nTemp /= radix;
}
/* 解决0的问题 */
if(i==0)
{
lpString[0] = 0x30;
i++;
}
/* 获得正确的顺序 */
Len = i;
for(i=0; i < (Len/2); i++)
{
nTemp = lpString[i];
lpString[i] = lpString[Len-i-1];
lpString[Len-i-1] = nTemp;
}
lpString[Len] =0;
return szString;
};