当我们使用c语言编译器vs2019以后版本写代码时,可能会遇到使用输入函数莫名报错的情况,而这在vs2013的是不会出现的,报错情况如:
这和函数安全有关,比如getchar作为读入函数,不用另外加预处理指令也能正常运行,是因为vs认为getchar安全,但在vs2019之后的版本,一些输入函数,如scanf()就要在第一行加上#define _CRT_SECURE_NO_WARNINGS
就可以正常运行:
其中"CRT_SECURE_NO_WARNINGS"是一个C语言编译器的预处理指令,用于禁用一些特定的编译器警告。 这个警告通常与使用不安全的函数或操作相关,例如使用不带安全检查的字符串函数。
vs2019以后版本使用输入函数的报错,归根结底还是函数安全的问题。