报错效果
- 测试用例
#include<stdio.h>
int main() {
printf("请输入:");
int a = 0;
scanf("%d", &a);
printf("%d\n", a);
return 0;
}
- 错误代码
This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
- 报错截图
报错原因
VisualStudio使用scanf、strcyp、strlen、strcat等函数可能会导致栈帧的破坏,这些函数编译器认为不安全,需要改用安全的函数。比如scanf
改为scanf_s
。
解决方式
我们这里要么使用安全的函数,要么修改编译器的设置。
在头文件#include<stdio.h>
之前定义常量#define _CRT_SECURE_NO_WARNINGS 1
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main() {
printf("请输入:");
int a = 0;
scanf("%d", &a);
printf("%d\n", a);
return 0;
}
如何永久解决问题?
每一次新建文件都要加上一行,太麻烦了。
newc++file.cpp是我们新建C文件时文件的默认添加内容,也就是说改动这个文件,以后我们新建的文件自动伴我们添加#define _CRT_SECURE_NO_WARNINGS 1
newc++file.cpp文件位置
G:\need soft\Microsoft Visual Studio2022\Community\Common7\IDE\VC\VCProjectItems\newc++file.cpp
记事本打开修改内容
总结
大家喜欢的话,给个👍,点个关注!继续跟大家分享敲代码过程中遇到的问题!
版权声明:
发现你走远了@mzh原创作品,转载必须标注原文链接
Copyright 2021 mzh
Crated:2021-11-27
欢迎关注 『C语言』 系列,持续更新中
【更多内容敬请期待】