8

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

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

我收到以下错误:

'itoa':不推荐使用此项目的 POSIX 名称。而是使用符合 ISO C 和 C++ 标准的名称:_itoa。

4

3 回答 3

9

那是 MSVC 对你做的。如果在任何 library之前添加以下行#include

#define _CRT_NONSTDC_NO_DEPRECATE

警告被抑制,许多其他功能也类似。

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

#define _CRT_SECURE_NO_WARNINGS
#define _CRT_SECURE_NO_DEPRECATE  
于 2017-10-24T17:25:39.310 回答
3

请使用snprintf,它比itoa.

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

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

于 2017-10-24T17:31:48.090 回答
1

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.

于 2017-10-24T17:35:27.823 回答