'itoa':此项目的POSIX名称已弃用

Dan*_*phy 4 c itoa

我正在尝试通过执行以下操作将an int转换为string

int id = 12689;
char snum[MAX];
itoa(id, snum, 10);
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

'itoa':不建议使用此项目的POSIX名称。而是使用符合ISO C和C ++的名称:_itoa。

Wea*_*ane 5

这就是MSVC对您执行的操作。如果添加以下行之前任何库#include小号

#define _CRT_NONSTDC_NO_DEPRECATE
Run Code Online (Sandbox Code Playgroud)

警告被抑制,对于许多其他功能也是如此。

此外,如果同时添加这两行,MSVC将停止告诉您使用scanf_s而不是标准功能scanf(和其他功能)。

#define _CRT_SECURE_NO_WARNINGS
#define _CRT_SECURE_NO_DEPRECATE  
Run Code Online (Sandbox Code Playgroud)


Edw*_*uck 5

请使用snprintf,它比 更便携itoa

char buffer[10];
int value = 234452;
snprintf(buffer, 10, "%d", value);
Run Code Online (Sandbox Code Playgroud)

itoa 不是标准 C 的一部分,也不是标准 C++ 的一部分;但是,许多编译器和相关库都支持它。