c語言字串處理報錯 warning,C4996,sprintf,deprecated,C4996,strcpy,C4996,strcat

Alex_designer發表於2020-10-07

在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這兩個巨集。

相關文章