vs2019中无法使用scanf函数的三种解决方案
scanf
为啥不安全:可能会越界访问,因此编译器判定它不是很安全。
解决办法
-
方法一:要写成scanf_s
但是该函数的用法与scanf函数用法略有不同,举个例子:
如果是检测数组的话,必须表明数组长度: scanf_s($s,name,sizeof name); 即: scanf_s(%s,name,40);
并且这个函数只适用于vs,所以,不推荐
-
方法二:
#define _CRT_SECURE_NO_WARNINGS 1
将这行代码加在所写代码的第一行。
-
最佳解决方式:
第二种方法每次都需要写进去,那么有没有什么一劳永逸的方法能够在每次创建新的文件的时候,自动将那行代码写入第一行呢?
因为在vs中,新建的源文件,都是拷贝newc++file.c里的,所以我们只需要在那个文件里面写入#define _CRT_SECURE_NO_WARNINGS 1,即可在每次创建新文件的时候读取这段代码并且自动输入。
现在,我们只需要找到newc++file.c文件然后打开并且输入即可,但是可能会出现一个问题:你没有权限更改该文件 其实解决办法也很简单: 1.拷贝该文件,放在桌面,打开,更改,保存,再拷回去,替换掉源文件。