VS中出现的printf,scanf等函数不安全而报错的问题的全面解决方法

简介: VS中出现的printf,scanf等函数不安全而报错的问题的全面解决方法

在我们对VS的刚开始使用时,经常会遇见函数不安全而报错的问题,如


57b030f7d0e2478f8b56e8aa5cf81727.png



有如下三种解决办法(个人推荐第三种):


1.文件包含 #define _CRT_SECURE_NO_WARNINGS

这里又分为两种情况:


(1)在 .c 文件中

有些项目比较简单,可能一个.c文件就能完成代码,这个时候把#define _CRT_SECURE_NO_WARNINGS 放在当前.c文件的第一行就可以了(注意:一定要是第一行)。


#define _CRT_SECURE_NO_WARNINGS 
#include <stdio.h>
int main() {
    int a;
    scanf("%d", &a);
    printf("%d\n", a);
    return 0;
}

(2)一劳永逸的方法:

在自定义 .h 文件中在项目有自定义头文件时,也可以把 #define _CRT_SECURE_NO_WARNINGS 放在自定义的头文件中,当头文件有 #pragma once 时(防止头文件重复包含),上面的代码也可以放在其之后如

c0e9365a6eb14b9682688c25ef4a025d.png07deb7cf9d634e95be3bc59e2fb10166.png2.预处理器定义


项目->属性->C\C++->预处理器->预处理器定义,在右输入框中加入:


_CRT_SECURE_NO_WARNINGS并保存。


5a0beece8b314ffb9a7aa602e0648b9d.png

3.关闭SDL检查


项目->属性->C\C++->常规->SDL检查,选择否

4d9b526bd1c54d438b3ddc8fb6c0b1e9.jpg


我觉得第三种最好最方便,但美中不足的地方就是只适用于当前项目,新项目要重新设置。


总结:除了1.(2)的设置是适用于所有项目外,其他设置只是用于本次项目。


本人推荐第三种和第一种的第二个方法。


新手的一点学习分享,如有错误的地方还请各位指正。


 


相关文章
|
算法 安全 Java
【C/C++ 实用工具】静态代码检测工具和平台的一览
【C/C++ 实用工具】静态代码检测工具和平台的一览
1744 0
获取下载Qt安装包,Qt源码全国网址备忘录(不用注册Qt账户,即可下载各版本Qt安装包和Qt源码包)
获取下载Qt安装包,Qt源码全国网址备忘录(不用注册Qt账户,即可下载各版本Qt安装包和Qt源码包)
获取下载Qt安装包,Qt源码全国网址备忘录(不用注册Qt账户,即可下载各版本Qt安装包和Qt源码包)
|
存储 分布式计算 安全
阿里云服务器ECS实例选型参考:场景适配、应用推荐
选择阿里云服务器ECS实例之前,需要结合性能、价格、工作负载等因素,做出性价比与稳定性最优的决策。对于很多新手用户来说,在初次购买阿里云服务器的时候,面对众多实例规格往往不知道如何选择,因为云服务器实例规格不同,价格也不一样,性能表现更是千差万别。因此,在购买阿里云服务器ECS实例之前,需要结合性能、价格、工作负载等因素,做出性价比与稳定性最优的决策。本文将通过一些常见的选型场景推荐,为大家详细介绍阿里云服务器实例选型的最佳实践,便于大家在选择云服务器实例规格时做个参考。
|
Unix 调度 Swift
苹果iOS新手开发之Swift 中获取时间戳有哪些方式?
在Swift中获取时间戳有四种常见方式:1) 使用`Date`对象获取秒级或毫秒级时间戳;2) 通过`CFAbsoluteTimeGetCurrent`获取Core Foundation的秒数,需转换为Unix时间戳;3) 使用`DispatchTime.now()`获取纳秒级精度的调度时间点;4) `ProcessInfo`提供设备启动后的秒数,不表示绝对时间。不同方法适用于不同的精度和场景需求。
1432 3
|
物联网 API 数据库
一文带你认识蓝牙 GATT 协议
正所谓磨刀不误砍柴工,我们有必要先深入的学习一下 GATT 以及 GATT 相关的一些知识。 本文我们就来了解一下 蓝牙 GATT 到底是什么?同时了解下我们使用的 ESP32-C3 GATT示例的工程的代码结构。
10357 5
一文带你认识蓝牙 GATT 协议
|
Ubuntu Linux Windows
两种Ubuntu和Windows互相共享文件夹的方法
两种Ubuntu和Windows互相共享文件夹的方法
|
弹性计算 安全 小程序
编程之美:Python让你领略浪漫星空下的流星雨奇观
这段代码使用 Python 的 `turtle` 库实现了一个流星雨动画。程序通过创建 `Meteor` 类来生成具有随机属性的流星,包括大小、颜色、位置和速度。在无限循环中,流星不断移动并重新绘制,营造出流星雨的效果。环境需求为 Python 3.11.4 和 PyCharm 2023.2.5。
1330 9
|
编解码 异构计算
一个软件,实现类似HDMI显卡欺骗器功能
一个软件,实现类似HDMI显卡欺骗器功能
17548 1
一个软件,实现类似HDMI显卡欺骗器功能
|
安全 算法 程序员
【C++入门到精通】Lock_guard与Unique_lock C++11 [ C++入门 ]
【C++入门到精通】Lock_guard与Unique_lock C++11 [ C++入门 ]
690 0