刚开始在学习使用 scanf 的时候,vs2017和vc++一直无法编译成功,总是报错,查询代码也没有问题,后来问了学长发现,是当时建项目的时候,没有勾选掉安全开发生命周期,导致检测不安全。
比如下面的错误
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.
这是因为当我们在VS2017创建项目的时候,会有一个叫做“安全开发生命周期(SDL)检查”的框框,这个是为了检测开发者的代码安全,如果我们不去掉它,它会按照SDL的规范来编译代码,就会有一些以前常用的东西报错。
如果不小心创建了就可以选择关闭SDL
关闭SDL检查的方法是:项目->属性->C/C+±>SDL检查,选测否,就可以将其关闭了
或者比如scanf,可以将其变成 scanf_s 就可以使用了