VS再用到scanf时,可能会出现以下报错信息:【error 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.】
这里放一下我编写的简单代码
程序报错信息
VS会声明“输出错误”,但同时显示“未找到相关问题”,这时就可以从error所在行寻找问题
原因分析
对该句子进行简单翻译不难发现,提示是高级版的VS默认scanf以及fopen等函数的使用不安全,建议改写为scanf_s。
解决方式
一、将 scanf 改写为 sanf_s
这个方法十分简单,只需要改写scanf,其他语句无需变动。
但scanf_s只能在VS使用,其他平台会受限,而scanf在各个平台都可使用。
具体代码如下
二、在代码最上面加上一句宏 #define _CRT_SECURE_NO_WARNINGS 1
加上该宏后后续代码均可正常运行,但注意要加在所有语句最上面!【不一定要在第一行,但需要在所有代码最上面】
如果放在中间或者后面系统仍然会报错
正确示例
错误示例
加上该宏可以让系统忽略安全检测,在执行代码时就不会报错。