当前位置:网络安全 > vs2019中哪些函数无效_scanf函数无法运行(VS2019)(解决办法)

vs2019中哪些函数无效_scanf函数无法运行(VS2019)(解决办法)

  • 发布:2023-10-05 16:51

文章目录

前言 1. VS2019 中无法识别的常见函数总结 2. 解决方案 1. 在代码文件第一行添加 #define _CRT_SECURE_NO_WARNINGS 2. 更改 VS2019 中的预处理器定义 3. 最牛逼的方法,一个——时间解决你的后顾之忧

总结

前言

读完我的这篇博客,你将彻底告别函数后缀“_s”。在编写C/C++语言程序时,您是否还在担心需要给scanf、strcpy、fopen等函数添加后缀的麻烦?而且即使添加了后缀,也可能会出现让你感觉不舒服的错误和警告?您是否阅读过其他博主的一些解决方案但仍然不明白?

1。 VS2019中常见无法识别功能及报错汇总

2。解决方案

1。在代码文件第一行添加#define _CRT_SECURE_NO_WARNINGS

必须在第一行! ! !一定要在第一行! ! !一定要在第一行! ! !

#define _CRT_SECURE_NO_WARNINGS

#include

#include

使用命名空间 std;

#定义SQR(x) ((x)*(x))

#define INVALID_NUM (0xffffffff)

string file_name = "test.txt";//存储原始数据的文件名

int SUM;//一共有多少个城市

双** DP; // 动态规划数组DP[i][j],i代表城市集合V,

//j表示某个城市节点,对应方程中的d{V,x->j}

双**城市距离; // 城市之间的距离

2。更改VS2019中的预处理器定义

VS2019顶部工具栏第四项“项目” ↓ 最后一项“项目的属性§” ↓ C/C++ ↓ 预处理器 ↓ 预处理器定义 ↓ 点击右侧下拉箭头 ↓ 点击<编辑> ↓ 在将第一个最白的编辑块移到最后一行 ↓ 写入“_CRT_SECURE_NO_WARNINGS” ↓ OK ↓ Apply ↓ OK ↓ 然后运行“ctrl+F5”,就不会再针对这个问题报错误和警告了。

3。最棒的方法,一次性解决你的烦恼

虽然有点麻烦,但是一旦做了一次,基本上就不用像前两步那样重复了。我们平时写C/C++的时候是不是会用到stdio.h和iostream这两个头文件呢?那我们直接找到VS2019的这两个头文件,直接在里面加上#define... 是不是很快就能解决了呢?头文件好像在window kits文件里,可以搜索一下。

总结

今天介绍了如何解决VS2019无法识别一些常用功能并报错误警告的问题。如果觉得有用,请不要犹豫点赞收藏哦~

使用VS2019时,编译使用scanf函数时,会出现错误。这种情况该如何解决呢?

错误原因:“scanf”函数可能不安全。请使用scanf_s函数

解决方案:放入源文件的第一行:#define _CRT_SECURE_NO_WARNINGS

scanf_s 这个函数是VS编译器本身提供的函数,不是标准C提供的函数。也就是说,只有VS编译器知道,其他编译器不知道!

建议使用scanf

如果一定要使用scanf_s,请先研究一下再使用!

每次新C语言程序都加这个会不会太麻烦

有什么永久的解决办法吗?

方法:VS的安装路径下有一个文件:newc++file.cpp文件

在VS项目中新建.c或.cpp文件时,文件newc++file.cpp被复制!

只需将#define _CRT_SECURE_NO_WARNINGS添加到newc++file.cpp文件中

我们找到文件后,用记事本打开,添加并保存,我们会发现无法修改,权限不够。

然后我们将该文件复制一份到桌面(注意:不要把原文件拉出来),在桌面上修改该副本,修改完后拉回来,替换即可。

(如果文件移动后没有文件,则创建文件时不会创建c++项)

希望这篇文章可以帮助大家解决问题!

很多同学在学习C语言时都会遇到scanf无法使用的问题

先解决问题!

选项1:每次scanf后添加_s? ? ? ? scanf—>scanf_s

scanf_s

选项2:在项目的第一行定义_CRT_SECURE_NO_WARNINGS

#define _CRT_SECURE_NO_WARNINGS 1

选项3:一劳永逸,但需要一点技巧。找到vs的copy文件,放入我们方案的代码2

直接放入复制的文档中。每次创建新项目时都会自动添加这行代码(具体请参见我的空间:VS文件初始化教程)

现在我就告诉大家为什么会报错以及如何解决。

1.

?我们写完代码后,ctrl+F5让代码运行

?接下来就是一系列的报错,哈哈。为什么会发生这种情况?我们来看看输出分析

?他说:scanf函数不安全。建议我们使用scanf_或者使用_CRT_SECURE_NO_WARNINGS

测试一下吧

1。添加_s

?2。 Definition_CRT_SECURE_NO_WARNINGS

?可以使代码很好的完成。

?这时候很多好奇的宝宝就会问,为什么不安全呢?我们学到了不安全的函数吗?

我们通过测试代码来说明它的不安全性

#define _crt_secure_no_warnings 1

#包括

int main()

{

char arr[5] = { 0 };

scanf("%s", arr);

//此时scanf可能不安全。 arr定义了5个空格,我们可以通过scanf输入很多数字

//比如输入6个数字回车就会报错

//scanf 准确存储你给了多少,不管空间能否承受

//scanf_s仅在vs中可用,其他编译器将无法成功运行

//所以我们直接在第一行定义#define _crt_secure_no_warnings 1来消除错误

//不用每次写scanf都写scanf_s

返回0;

}

我们定义的arr数组有5个空格,我们可以通过scanf输入很多数字

比如输入6个数字,回车就会报错

?scanf给多少就存多少,不管空间能否承受? ?另外,scanf_s只在VS中可用,其他编译器将无法成功运行(不具备通用性)

所以从长远来看我们最好使用选项2和3来消除错误。

相关文章