- 在vs2019中scanf,strcpy,strcat,sscanf,fopen? 等函数会被系统报错
#include <stdio.h>
int main ()
{
int num1 = 0;
scanf("%d",&num1);
printf("%d\n",num);
return 0;}
严重性 代码 说明 项目 文件 行 禁止显示状态
错误 C4996 ‘scanf‘: 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. 8-1 D:\proiect\8-1\8_1.c 211
? ? 2.原因
int main() {
char arr[5] = { 0 };//设置arr只能放五个字符
scanf("%s", arr);//如果输入的时候如果超过了五个字符 就会报错放不下了程序崩溃了---所以scanf不会管放不放的下反正你输多少就给你存多少 没有检测所以不安全
printf("%d\n", arr);
return 0;}
正是因为这些函数并不会管你是否安全,所以才会被报错
? ?3.解决办法
- 用程序告诉你的替换函数 scanf换成scanf_s,但是这个函数是为vs2019自己定义的,在别的编码器中并不支持,不推荐使用
- #define _CRT_SECURE_NO_WARNINGS 定义预定符号 重新定义scanf使其不被报错
- 可将其编入宏定义中就不用每次都写这串代码 但是每个项目都要编入