解决VS2013或2017中类似于:error C4996: 'scanf': This function or variable may be unsafe的问题

用惯了之前的scanf()函数,突然要用scanf_s()函数多多少少有点不习惯,所以在这里给大家介绍一下scanf_s的用法或好处吧!

1、scanf_s函数格式控制字符串中除了格式声明之外,如果有其他字符,则必须在输入数据时在对应的位置上输入与这些字符相同的字符。

      例如:scanf_s("%d,%d,%d",&a,&b,&c);

      在输入数据时,就应该输入1,2,3;123之间的逗号“,”是不能省略的,不是之前        的1 2 3

       输入数值时,两个数值之间要插入空格或其他分隔符符是为了对多个数值进行区分。但             是,如果出现上面举例的情况,就只能使用与格式控制字符串中字符相对应的字符。

       正如度娘所说:很多带“_s”后缀的函数是为了让原版函数更安全,传入一个和参数有关的         大小值,避免引用到不存在的元素,有时黑客可以利用原版的不安全性黑掉系统。比                 如:char d[20];写成scanf_s("%s",d,20);才是正确的,有这个参数20使准确性提高。

2、但是还是习惯输入scanf,这里提供一种最简单的方法,让你回归到自己的习惯当中!

      第一步:(一定要在项目里设置)项目属性->配置属性->C/C++->预处理器->预处理的定义->点击按钮 (V)->编辑,输入:“_CRT_SECURE_NO_WARNINGS”就ok了

你可能感兴趣的:(C_BUG)