没有传递足够的参数 怎么修改

img

img


我的vs是2022版的 scanf直接用scanf-s也可以,没有引用头文件

直接使用scanf就可以使用呀,如果非要使用scanf_s那么你需要知道你存放字符串数组大小的,比如char password[20]={0};,那么你需要scanf_s("%s",password,20);后面的20就是你password定义的最大字符个数。
很多带“_s”后缀的函数是为了让原版函数更安全,传入一个和参数有关的大小值,避免引用到不存在的元素,有时黑客可以利用原版的不安全性黑掉系统。
具体参考:
https://blog.csdn.net/qq_43309823/article/details/95386759

scanf_s("%s",password); 修改为: scanf_s("%s",password,20);

这就是函数定义你没搞懂,随便查一下,就好像你一个函数有 4个参数,你调用的时候只传3个