欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【error C4996: ‘sprintf’: This function or variable may be unsafe. 】的解决方案

程序员文章站 2022-04-01 08:53:37
...

@[TOC]




Visual Studio 2013 编译错误【error C4996: ‘sprintf’: This function or variable may be unsafe. 】的解决方案



																				<div class="tags-box space">
							<span class="label">个人分类:</span>
															<a class="tag-link" href="https://blog.csdn.net/ture_dream/article/category/6412766" target="_blank">C++编程																</a>
						</div>
																							</div>
			<div class="operating">
								</div>
		</div>
	</div>
</div>(这里写自定义目录标题)

在VS 2013 中编译 C++ 语言项目,如果使用了 sprintf函数,编译时便会提示如下错误:

错误    5    error C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.    F:\C++\HECHEN\HECHEN\FE.cpp    13    1    HECHEN

原因是Visual C++ 2013 使用了更加安全的 run-time library routines 。新的Security CRT functions(就是那些带有“_s”后缀的函数),请参见:

CRT函数的安全增强的版本

下面给出这个问题的解决方案:

方法一:将原来的旧函数替换成新的 Security CRT functions。

方法二:用以下方法屏蔽这个警告:

    1. 在预编译头文件stdafx.h里(注意:一定要在没有include任何头文件之前)定义下面的宏:

       #define _CRT_SECURE_NO_DEPRECATE

    2. 或声明 #param warning(disable:4996)

    3. 更改预处理定义:

        项目->属性->配置属性->C/C++ -> 预处理器 -> 预处理器定义,增加:

            _CRT_SECURE_NO_DEPRECATE




参考资料:《安全模板重载