vs系列编译器对函数不安全报错的解决方法
#include<stdio.h>
int main()
{
int a = 10;
scanf("%d", &a);
printf("%d\n", a);
return 0;
}
为什么函数会报错有这些函数
scanf
sscanf
strcpy
fopen函数
等等这些函数都不安全的
int main()
{
char arr[5] = { 0 };//5个字符
scanf("%s", arr);//输入的时候超过五个怎么办呢?
printf("%s\n", arr);
return 0;
}
scanf函数不会检测内部函数的安全性,解决的方法有3
1,使用scanf_s函数,但只能在vs编译器上使用,跨平台使用
2,按照提示提示,在代码的最不能定义的地方#define CRT_SECURE_NO_WARNINGS 1,每次都要在代码前端写这个作业麻烦
3,一劳永逸的解决办法:让每一次新建的源文件中就包含这句代码;即在vs的安装路径下搜索newc++file.cpp这个文件,并在文件中加入
这句代码以后新建的所有.c文件中都将包含这句代码。
结束