使用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很长,像这样,输入了三个,报错了
可以这样解决(拆开):
感觉这个方法有点笨,如果大家有好的方法希望可以告诉我!