在使用scanf()函数时编译器报错C4996
编辑
2
2021-09-26

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.
这是因为visual studio中的MSVC编译器认为scanf()函数在读取输入时不进行边界检查,可能存在读入超出内存限制的字符,造成内存访问越界,从而引发内存泄漏,留下安全隐患,微软建议使用scanf_s()函数设置读入大小,防止读入超出边界的内容。
但,scanf()函数在众多C语言教材中都广泛存在,在学习的过程中可以使用以下方法解决这个问题
- 使用scanf_s()直接替代scanf()
- 使用警告杂注在当前文档中禁用C4996警告
-
- 将以下代码作为预处理器指令放在文档的第一个非空白区间(如图)
#pragma warning(disable : 4996)
- 将以下代码作为预处理器指令放在文档的第一个非空白区间(如图)

- 0
- 0
-
分享