web-dev-qa-db-ja.com

'itoa':このアイテムのPOSIX名は非推奨です

これを実行して、intstringに変換しようとしています。

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

次のエラーが発生します。

'itoa':このアイテムのPOSIX名は非推奨です。代わりに、ISOCおよびC++準拠の名前_itoaを使用してください。

4
Dan Murphy

それはあなたにそれをしているMSVCです。次の行を追加した場合before任意のライブラリ#includes

#define _CRT_NONSTDC_NO_DEPRECATE

他の多くの機能と同様に、警告は抑制されます。

さらに、これらの2行も追加すると、MSVCは、標準関数scanf(およびその他)の代わりにscanf_sを使用するように指示しなくなります。

#define _CRT_SECURE_NO_WARNINGS
#define _CRT_SECURE_NO_DEPRECATE  
5
Weather Vane

snprintfを使用してください。itoaよりも移植性があります。

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

itoaは標準Cの一部ではなく、標準C++の一部でもありません ;しかし、多くのコンパイラと関連ライブラリがそれをサポートしています。

2
Edwin Buck

C標準ライブラリには標準のitoa関数はありませんでした。したがって、それを使用しようとすることは、どのような場合でも良い考えではありません。 Cには、sprintfファミリーの関数があり、その変換を喜んで実行します。

1
AnT