关于vs2019出现某些函数报错的解决方法

  1. 在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使其不被报错
  • 可将其编入宏定义中就不用每次都写这串代码 但是每个项目都要编入
上一篇:linux并发服务器设计


下一篇:[LeetCode] 356. Line Reflection