posts - 103,  comments - 41,  views - 20万

自己在写程序的时候经常用到保存大量的图片,从而对其编号,所以要把整型转换成字符型。

通常自己定义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.网上别人重写了这个函数,代码如下(好像负数会有问题)。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
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;
};

  

posted on   zCoderJoy  阅读(1950)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示