怎么解决VS编译器上用不了scanf函数(会报错)
前言
下面我会教大伙如何从根上去解决在VS编译器上用不了scanf函数这个问题。首先,我先举了一个例子如下图所示。编译时当然肯定是报错了,但原因呢?
原因如下图:
编译器想告诉你的是:scanf这个函数可能不安全,考虑使用编译器内自给的scanf_s这个函数来代替之。如果还是继续想用scanf函数且不想看到这个警告,请使用: _CRT_SECURE_NO_WARNINGS。
方法一
用scanf_s函数,确实可以使程序顺利开始编译,但要知道scanf_s函数可是VS编译器自己提供的函数并非标准C提供的函数,也就是说只有VS编译器认识它其他编译器不认识!!!所以这就导致了你在VS上编写的代码无法在其他编译器上使用,除非你把scanf_s全部替换成scanf。这我就感觉非常脑瘫了呀。
方法二
在你的源文件第一行放:#define _CRT_SECURE_NO_WARNINGS,此方法唯一不足就是每次创建源文件都得在第一行敲上这段代码。
方法三
我可以使得每次创建源文件的时候第一行始终存在:#define _CRT_SECURE_NO_WARNINGS,这样是不是就一劳永逸了。该如何做呢?
- 安装一个工具everything,网址。
- 用everything搜索一个文件newc++file.cpp ,右击选中它,点击打开路径。
- 将该文件拷贝一份放置桌面,然后用选择打开方式,用VS打开。
- 在VS编译器内存入一句话:#define _CRT_SECURE_NO_WARNINGS,然后保存并退出。
