scanf或scanf_s遇到的问题,两者区别?

请问一下为什么我想输入字符串却遇到了这种问题,虽然能编译通过,但我没看明白vs的解析

    printf("输入节点:");
    scanf_s("%c", &str);

img

char str[80];
scanf_s("%s",80,str);
scanf_s在读入字符流时要增加一个整数"80"作为参数,表示可读入的最大长度
在C语言中,编译器不会检查输入长度和存储数组的大小是否匹配,scanf可能会造成输入越界,相比之下scanf_s更加安全,VS中就禁用了scanf

char str[80];
scanf_s("%s",80,str);

scanf_s还缺少参数

scanf_s在读入字符流时要增加一个整数作为参数,表示可读入的最大长度
在C语言中,编译器不会检查输入长度和存储数组的大小是否匹配,scanf可能会造成输入越界,相比之下scanf_s更加安全,VS中就禁用了scanf

供参考:https://www.cnblogs.com/eniac12/p/4722237.html

百度下