首页 热点专区 义务教育 高等教育 出国留学 考研考公

Vs中c语言问题

发布网友 发布时间:2022-04-19 21:39

我来回答

1个回答

热心网友 时间:2023-07-16 07:01

在VS2013中,每次使用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_s,要不就用_CRT_SECURE_NO_WARNINGS来处理不报错,为什么会出现这种原因呢?

scanf()在读取时不检查边界,所以可能会造成内存泄露,所以VS2013提供了scanf_s()来替代,在调用时,必须提供给scanf_s一个数字以表明读取多少位字符,用法为scanf_s("%c",&letter,sizeof(letter)),否则,即使Ctrl+F7和Ctrl+F5通过了,程序的运行结果也可能与自己所期望大相径庭的。

如果非要用scanf函数,那么通过以下两种方式可以禁止警告:
(1)右击项目——属性——C/C++——预处理器——预处理器定义中增加_CRT_SECURE_NO_WARNINGS,然后点确定,退出。
(2)在函数最顶头进行定义:#define _CRT_SECURE_NO_WARNINGS,也可以禁止报错警告追问我说输入几个变量的时候。。。是不是每个变量后面都要加个数字。。答非所问。。

追答不是吧

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com