相信大家都对scanf()函数不陌生,但是这个函数在visual studio2013中使用时编译器会报错如下:
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.
编译器认为scanf()函数是一个不安全的函数,所以不能使用(当然,这并不意味着scanf()函数是错误的),这时的解决方案是可以使用visual studio编译器提供的 scanf_s()函数对其进行替换,这两个函数的功能是完全一样的,绝大多数情况下,scanf_s()替换都是一个解决此问题的好办法,但在这里,我却不建议使用其方法。
众所周知,C语言的一大优点就是移植性强,我们想一想,scanf_s是visual studio编译器提供的一个安全函数,但是当我们将用scanf_s()函数编写的程序移植到其他编译平台的时候会发生什么呢,那就是编译器报错,因为scanf_s不是标准C语言库函数<stdio.h>里的函数,所以他们找不到,自然会报错。
那基于这样的问题,我们应该怎么办呢,接下来,我想大家介一种一劳永逸的方法。
打开visual studio2013安装路径,找到 VS2013/VC/vcprojectitems 文件夹中的 newc++file 文件,打开newc++file,选择用记事本打开,将 #pragma warning(disable:4996) 宏定义复制进去,点保存,这就大功告成了,以后每次新建的项目,第一行就会自动出现这个宏定义,就可以放心大胆地使用scanf()函数啦