在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这两个宏。