为什么Visual Studio在写程序时,输入scanf()会直接报错

就算这个scanf是教科书的范例也会报错,除非将scanf改为scanf_s?... 就算这个scanf是教科书的范例也会报错,除非将scanf改为scanf_s? 展开
 我来答
yxh015864
2015-04-24 · 超过31用户采纳过TA的回答
知道答主
回答量:105
采纳率:0%
帮助的人:77.3万
展开全部
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,也可以禁止报错警告。
fjy202123
2020-05-30 · 贡献了超过123个回答
知道答主
回答量:123
采纳率:0%
帮助的人:3.2万
展开全部
教科书应该用的gcc,Visual Studio认为scanf不安全,要改成scanf_s
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帅_得_被人砍
2015-04-24 · TA获得超过177个赞
知道小有建树答主
回答量:83
采纳率:0%
帮助的人:70万
展开全部
有代码吗?你这样描述不清是解决不了问题的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式