1.为什么VS2022认为scanf函数不安全?
scanf() 将字符串读⼊字符数组时,不会检测字符串是否超过了数组⻓度。所以,储存字符串时,很可能会超过数组的边界,导致预想不到的结果如程序崩溃等,但我们可以通过在使⽤ %s 占位符时,指定读⼊字符串的最⻓⻓度,即写成 %[m]s ,其中的 [m] 是⼀个整数,表⽰读取字符串的最⼤⻓度,后⾯的字符将被丢弃这种方法较大程度上避免这一情况。
2.为什么就不使用VS2022提供的更为安全的scanf_s函数呢?
由于scanf_s函数是VS2022所提供的所以在其他编译器上编写代码时可能无法被识别,为了保证代码的可移植性,我们最好使用scanf函数。
3.如何在VS2022上使用scanf函数呢?
我们只需在代码的最上面一行加上#define _CRT_SECURE_NO_WARNINGS 1即可
4.如何一劳永逸地解决诸如此类VS所认为不安全的函数的问题呢?
由于VS在新建文件时都是拷贝:newc++file.cpp,我们可以下载everything这一软件
在此软件中搜索newc++file.cpp且是路径在VS中这一文件
右击文件选择打开路径
由于VS的权限原因,我们最好将此文件先移到桌面后使用记事本方式打开后将#define _CRT_SECURE_NO_WARNINGS 1这一段加入进去后再将此文件重新移回VS中此后你所新建的每一个文件都会自带这句话,则不需要每次都手动添加
希望以上的内容能有效帮助到解决此类问题!!