Visual Stdio 2010以上版本的集成开发环境怎么把scanf_s换为scanf

Visual Stdio 2010以上版本的集成开发环境怎么把scanf_s换为scanf

【问题描述】:我们在使用vs2010以上的编译器时,经常会出现这样的错误。

Visual Stdio 2010以上版本的集成开发环境怎么把scanf_s换为scanf

它说让我们用scanf_s代替scanf,这是一种安全周期检测,版本较高的vs编译器认为scanf的使用存在安全隐患。因为在C语言和C++中字符串都是以‘\0’结束的,如果搜索不到‘\0’字符,很容易出现字符串越界的问题,为了避免这个问题,vs中才加上这个参数的。

【解决办法】:

方法一:在项目属性中---->配置属性------>C\C++------->预处理器------->在右侧的预处理器定义中加入一行_CRT_SECURE_NO_DEPRECATE


方法二:在代码的第一行加一行 #pragma warning(disable:4996)


方法三:直接用在scanf后面加上_s,就可以消除警告,比较简单。