鱼C论坛

 找回密码
 立即注册
查看: 2162|回复: 11

[已解决]C语言新手,请教各位大佬,谢谢啦

[复制链接]
发表于 2018-3-6 22:52:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
这是怎么回事?我写的scanf好像都有这个问题
最佳答案
2018-3-7 08:57:43
vs中认为scanf_s更安全,其实可以用scanf的
另外,scanf引号中不要用逗号!
H`VM{2Q}N$M(~{J7YAY9CNG.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-3-6 23:04:17 | 显示全部楼层
它让你用
scanf_s
不开发少用VS
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2018-3-7 08:13:48 | 显示全部楼层
scanf(“%lf%lf%lf”, &a, &b, &c); 把里面的逗号去掉,这样试试看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-7 08:22:23 | 显示全部楼层
在文件开头加上 #define _CRT_SECURE_NO_WARNINGS
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-7 08:57:43 | 显示全部楼层    本楼为最佳答案   
vs中认为scanf_s更安全,其实可以用scanf的
另外,scanf引号中不要用逗号!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-7 09:31:44 | 显示全部楼层
这是微软觉得scanf 不安全~要推销自家的产品了~ _s系列函数~
打个比方~你声明一个五个元素的字符数组~你用scanf接收往里面赋值~ 但是你输入了十七八个~
这时候会怎么样~ 这时候就会内存溢出~ 有可能你多输入的字符~就被写到不属于这个数组的内存里面去了~
这时候微软就摇旗大喊~ 我这有scanf_s!!!!!,你快来用~  他为什么比scanf安全? 因为他多了一个参数~要求你输入欲读入的个数~
多了的~就被丢了~
其实在 c11标准中~ 就已经承认了scanf_s函数~ 但是。。。好像其他的编译器厂商并不买账,比如gcc~哈哈。。。

说了这么多废话~来说解决的办法,你以后可能还会遇到更多的 4996错误~ 比如strcpy微软也觉得不安全~

我的办法就是在你写预处理命令的位置~添加上:
#pragma waring(disable:4996)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-7 12:32:26 | 显示全部楼层
风过无痕丶 发表于 2018-3-7 09:31
这是微软觉得scanf 不安全~要推销自家的产品了~ _s系列函数~
打个比方~你声明一个五个元素的字符数组~你 ...

谢谢啦,现在明白了,但是你的解决办法又是什么原理呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-7 12:37:49 | 显示全部楼层
zxy000 发表于 2018-3-7 12:32
谢谢啦,现在明白了,但是你的解决办法又是什么原理呢?

这不能说是我的解决办法~ 这是微软给出的给出的解决方案~
#pragma waring(disable:4996)
大致意思就是忽略 4996这项警告~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-7 13:19:12 From FishC Mobile | 显示全部楼层
风过无痕丶 发表于 2018-3-7 12:37
这不能说是我的解决办法~ 这是微软给出的给出的解决方案~

大致意思就是忽略 4996这项警告~

是这样的么,还是不行唉
2f5158f1dc139ca0.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-7 14:00:56 From FishC Mobile | 显示全部楼层
zxy000 发表于 2018-3-7 13:19
是这样的么,还是不行唉

写到include之前
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-7 14:20:59 From FishC Mobile | 显示全部楼层
风过无痕丶 发表于 2018-3-7 14:00
写到include之前

可以了,可以了,谢谢!那我把问题问完吧,为什么我和小甲鱼写的一样,可结果不对呢
-f01aa3671025979.png
-744b70b5056c19e3.png
-3d23db2e88928130.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-7 14:30:48 | 显示全部楼层
在项目属性中,点开c/c++,找到预处理器,添加_CRT_SECURE_NO_WARNINGS
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-6 07:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表