visual studio scanf_s函数 缺少“scanf_s”的整型参数(对应于转换说明符“4”)

 使用visual studio scanf函数用不了,查询了解决方法,试过了,都不行,就用了scanf_s函数,解决了报错。

 若你的代码调试时引发异常: 

代码后面有个红色叉

 若你的代码开始执行时代码下面有绿色波浪号:

 C6273    传递了一个非整数作为_Param_(4),而对“scanf_s”的调用需要一个整数,实际类型: “int *”: 如果当前传递的是一个指针值,则应使用 %p。    

C4477    “scanf_s”: 格式字符串“%s”需要类型“unsigned int”的参数,但可变参数 3 拥有了类型“int *”    学生管理系统    

C4473    “scanf_s”: 没有为格式字符串传递足够的参数    

解决方法如下:

scanf("%c", &c);//有可能引发错误
//改正后如下:
scanf_s("%c", &c);//还有可能引发错误
//改正后如下:
scanf_s("%c", &c, 4);
//4表示scanf_s函数最多只可以读取四个字符,这样更安全,如果是数组的话,不会造成数组越界。

        在调用scanf_s()函数时,需要提供一个数字以表明最多读取多少位字符。比如:char d[20];写成scanf_s("%s",d,20);才是正确的,有这个参数20使准确性、安全性提高。注意:只有当函数要求传入的类型是%s(字符串)时,才要需要传入字符串长度的参数。

如果你的scanf很长,像这样,输入了三个,报错了

可以这样解决(拆开):

感觉这个方法有点笨,如果大家有好的方法希望可以告诉我!

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值