目录
3.在输入代码前加入:#define _CRT_SECURE_NO_WARNINGS
一、报错原因
scanf是c语言库的标准函数,scanf函数可以接受任意的键盘输入而不进行检测长度,如果输入的超出应用给定的缓冲区,就会覆盖其他数据区,这称之“堆栈溢出”或者“缓冲区溢出”,所以scanf不安全。
二、解决方案:
1.把scanf改成scanf_s
但是不建议这种因为scanf_s是VS特有的,ANSI C中只有scanf(),没有scanf_s(),如果代码被移植到别的编译器的时候会报错,找不到scanf_s函数。
2.关闭SDL检查
步骤:项目→属性→C/C++→常规→SDL检查选择否→确定即可
3.在输入代码前加入:#define _CRT_SECURE_NO_WARNINGS
但是在我们每次使用scanf时都需要加这么一串代码吗?
其实我们把这窜代码添加到VS即可,一次搞定。
步骤:项目属性→C/C++预处理器→定义编辑→代码复制进去确定即可