目录
方法二:添加#define _CRT_SECURE_NO_WARNINGS 1
方法四:改变属性,输入_CRT_SECURE_NO_DEPRECATE
在运用vs学习c语言的过程中,我们发现在一些测试平台上运行成功c代码放到vs上无法运行成功。原因有的情况就是scanf的报错,这也是我在新学c语言时遇到过的问题,下面给出几种我的解决办法。
例子
#include<stdio.h>
int main()
{
int n;
scanf("%d", &n);
printf("%d", n);
return 0;
}
这是一段很简单的代码,运行之后我们看看发生了什么。
运行的结果
这是编译器所导致的问题,下面我给出解决办法。
方法一:scanf改为scanf_s
可以看到运行成功。但有大量代码我们在vs测试时上传到其他平台时,还需要将_s全部删去,这无疑浪费了时间。
方法二:添加#define _CRT_SECURE_NO_WARNINGS 1
#define _CRT_SECURE_NO_WARNINGS 1
添加#define _CRT_SECURE_NO_WARNINGS 1后,我们可以看见虽然有警告,但仍可以成功运行。但这种方法在我们创造一个新项目以后就要加一次很不方便,所以我们用下面这种方法。
方法三:寻找文件newc++file.cpp
使用记事本打开,输入#define _CRT_SECURE_NO_WARNINGS 1。有些电脑无法打开保存,我们可以复制后保存到桌面,然后进行替换。
这样我们每创造一个新项目都会自动生成#define _CRT_SECURE_NO_WARNINGS 1这句话。
方法四:改变属性,输入_CRT_SECURE_NO_DEPRECATE
_CRT_SECURE_NO_DEPRECATE
先点击项目打开属性,打开C/C++的预处理器,点击编辑输入_CRT_SECURE_NO_DEPRECATE,然后保存。
我们可以看到运行成功,因为改的是一个项目的属性。所以新建一个项目还是要添加_CRT_SECURE_NO_DEPRECATE。
方法五:改属性,关闭SDL检查。
同理先点击项目打开属性,打开常规,SDL检查改为否(双击蓝色区域改为否),然后保存。
以上就是我的办法,希望对各位有所帮助。