VS编译器对scanf函数不安全报错的解决办法(详细步骤)

简介: VS编译器对scanf函数不安全报错的解决办法(详细步骤)

前言

为什么同一份代码在Dev-c++编译器中能正常运行,而在VS中则报错呢?

原因:scanf此函数或变量可能不安全,要禁用弃用,所以上诉代码在VS中会报错


解决方法

方法一:

scanf替换为scanf_s (不推荐)


scanf_s这个函数仅仅是VS这个编译器提供的,如果把代码放到其他编译器可能会编译不过,这个时候会出现一些跨平台的问题。

方法二:

定义预定义符号_CRT_SECURE_NO_WARNINGS

在代码第一行输出:

#define _CRT_SECURE_NO_WARNINGS


一劳永逸的方法

可以让每一次新建的源文件中就包含这句代码:

方法:在VS的安装路径下搜索:newc++file.cpp这个文件


在文件中加上:

#define _CRT_SECURE_NO_WARNINGS

以后创建的的新的.c或者.cpp文件中都会自动有这句代码。

PS:如果觉得系统的搜索太慢的,可以下载Everything这个软件


方法三:

设置项目属性的预处理

打开工程的【解决方法资源管理器】->【属性】


在属性页中:

【属性配置】->【C/C++ ->预处理器】->【预处理定义】中增加:

_CRT_SECURE_NO_WARNINGS,每个符号都用分号隔开的

然后应用就可以了。


这种方法,每次项目都要设置,比较麻烦。

总结

个人推荐使用方法二,一劳永逸。


相关文章
|
10月前
|
编译器 文件存储 C++
一劳永逸的方法解决函数scanf报错问题
一劳永逸的方法解决函数scanf报错问题
123 0
|
5月前
|
安全 C语言 C++
VS中使用scanf函数报错如何解决?
VS中使用scanf函数报错如何解决?
25 0
|
6月前
|
C++
汇编--C++/c返回值代码分析
汇编--C++/c返回值代码分析
31 0
|
10月前
|
编译器 C语言 C++
scanf返回值被忽略的原因及其解决方法(vs2019)
scanf返回值被忽略的原因及其解决方法(vs2019)
314 0
|
10月前
|
编译器 C++
5秒教你一劳永逸解决vs中scanf等函数无返回值的问题
5秒教你一劳永逸解决vs中scanf等函数无返回值的问题
104 0
|
12月前
|
安全 编译器 C语言
VS编译器警告scanf未定义的三种解决办法
我们开始学习编程时候上手第一门语言通常是C语言,我们还需要下载一个编译器,最常见的莫过于Microsoft公司开发的Visual Studio(下面都简称VS)系列编译器,但是VS中我们使用scanf等函数时语句总是报错,显示不安全。
VS编译器警告scanf未定义的三种解决办法
|
芯片 C++
【MDK(keil)编译错误】找不到main.o及解决方法、多处报错“未定义”
【MDK(keil)编译错误】找不到main.o及解决方法、多处报错“未定义”
711 0
【MDK(keil)编译错误】找不到main.o及解决方法、多处报错“未定义”
|
编译器 C++
完美解决vs编译器scanf报错问题
完美解决vs编译器scanf报错问题
219 0
完美解决vs编译器scanf报错问题
|
C++
库、dlopen、函数名都正确,dlsym出错了,怎么回事
库、dlopen、函数名都正确,dlsym出错了,怎么回事
94 0
|
Linux Windows
编译OpenJDK8-u302出错:error C3861: “INT64_C”: 找不到标识符
编译OpenJDK8-u302出错:error C3861: “INT64_C”: 找不到标识符
96 0