在vs2003, vs2005 vs2019中用sprintf 會出現warning C4996: 'sprintf' was declared deprecated或warning C4996: 'strcpy' was declared deprecated或warning C4996: 'strcat' was declared deprecated的警告。這裡給出解決問題的一些方法。
方法一:呼叫VS2005鼓吹的那些帶「_s」字尾的非標準函數,即在其後加上"_S",如sprintf改為sprintf_s 。
方法二:在檔案最開始新增#define _CRT_SECURE_NO_DEPRECATE或#pragma warning(disable:4996) ,這是忽略警告的方法(一般比較少用)。
方法三:幹粹在工程屬性中設定(推薦)。
在工程屬性中設定的方法如下:
對於VC6:
開啟Project----settings----Resources----Preprocessor definitions,
新增_CRT_SECURE_NO_DEPRECATE和_SCL_SECURE_NO_DEPRECATE這兩個宏。
對於VS系列的版本:
開啟專案----專案屬性---設定屬性----C/C++ ----前處理器----預處理定義,
新增_CRT_SECURE_NO_DEPRECATE和_SCL_SECURE_NO_DEPRECATE這兩個宏。