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)的设置是适用于所有项目外,其他设置只是用于本次项目。


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


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


 


相关文章
|
1月前
|
C语言
你真的学会了printf和scanf函数吗?
你真的学会了printf和scanf函数吗?
|
6月前
|
编译器 C语言 C++
如何解决VS中scanf使用时报错或无法使用的问题
如何解决VS中scanf使用时报错或无法使用的问题
111 0
|
3月前
|
数据安全/隐私保护
scanf与getchar连用的注意事项
这里主要讲述scanf函数和getchar函数连续使用的注意事项
31 2
|
4月前
|
安全 C语言 C++
VS中使用scanf函数报错如何解决?
VS中使用scanf函数报错如何解决?
25 0
|
4月前
|
缓存
scanf和printf函数
scanf和printf函数
57 0
|
5月前
%md在printf语句和scanf语句中的区别
%md在printf语句和scanf语句中的区别
|
5月前
|
C语言
printf与scanf函数的返回值
printf与scanf函数的返回值
|
5月前
|
编译器 C语言 C++
关于vs中scanf()函数报错问题的解决
关于vs中scanf()函数报错问题的解决
74 0
|
7月前
while(~scanf(“%d“,&a)&&~a)用法
while(~scanf(“%d“,&a)&&~a)用法
58 0
|
9月前
|
编译器 C语言 C++
scanf返回值被忽略的原因及其解决方法(vs2019)
scanf返回值被忽略的原因及其解决方法(vs2019)
304 0