标题:用vs2017编译一直提示出现问题!新人求助!
只看楼主
TVXXVT
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2018-9-4
结帖率:0
已结贴  问题点数:20 回复次数:6 
用vs2017编译一直提示出现问题!新人求助!
#include<stdio.h>
main()
{
    int x, y, z;
    double  m;
    printf("please enter datas : x,y,z!");
    scanf("%d,%d,%d", &x, &y, &z);
   
    m = (double)x*y + z;
    printf("The n is : %lf", m);
    return 0;
}


错误列表为:   严重性    代码    说明    项目    文件    行    禁止显示状态
错误    C4996    '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.    Project3    c:\users\administrator\source\repos\project3\project3\源.c    7   


代码是出了什么问题,实在看不出来了,该怎么处理!求助求助!
搜索更多相关主题的帖子: vs2017 编译 提示 出现 printf 
2018-09-04 20:29
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
得分:5 
scanf是不安全的 建议使用scanf_s替换,可以忽略它
你也可以用scanf_s替换scanf,scanf_s多了一个参数,缓冲区大小,这可以防止缓冲区溢出

scanf_s()函数用法形式:
    scanf_s("输入格式",存储输入的地址,最大字符数);

例如scanf_s(“%s”,&str,n),整形n为str类型的大小,如果str是数组,那n就是该数组的大小

[此贴子已经被作者于2018-9-4 21:33编辑过]

2018-09-04 20:51
lxk1732942
Rank: 6Rank: 6
等 级:侠之大者
威 望:7
帖 子:450
专家分:425
注 册:2018-9-4
得分:5 
回复 楼主 TVXXVT
兄弟,你的vc2017能不能给我用用
2018-09-04 22:16
will丶
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:117
专家分:443
注 册:2015-10-19
得分:5 
这个好像是vs最新对c库函数的一个安全性更新,就像一楼老哥说的scanf在读取字符串时不检查边界,可能会造成内存泄露,所以vs就直接告知用户,直接用scanf_S
消除方法:
1.关闭安全开发检测
2.在工程属性->预处理器中找到预处理器定义添加一行_CRT_SECURE_NO_DEPRECATE
3.在代码开头加一行#pragma warning(disable:4996)
//第三种方法可以消除下面的警告,比较好用

腾空类星陨,遥望若花生。
2018-09-05 19:37
TVXXVT
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2018-9-4
得分:0 
回复 4楼 will丶
谢谢
2018-09-06 08:36
TVXXVT
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2018-9-4
得分:0 
回复 2楼 花脸
谢谢!
2018-09-06 08:36
豆豆的滴
Rank: 9Rank: 9Rank: 9
来 自:湖南
等 级:贵宾
威 望:33
帖 子:368
专家分:1087
注 册:2018-5-7
得分:5 
用vc++6.0吧兄弟
2018-09-07 14:54



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-489614-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.065722 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved