简单区别:
- scanf()不会检查输入边界,可能造成数据溢出。
- scanf_s()是scanf()的安全版本,会检查输入边界。
例如: str[5]
- scanf("%s",str),如果输入abcdefgh,则会使fgh溢出进入其他地方,造成程序错误。
- 而scanf_s("%s",str),则只会接收前5个输入,其后的都无效,避免了程序的漏洞。
注意:vs2017已经不再使用scanf()输入数据,只能用scanf_s,否则会报错

本文详细解释了C语言中scanf与scanf_s函数的区别。scanf函数在读取输入时不会检查边界,可能导致数据溢出;而scanf_s是scanf的安全版本,能有效避免因输入过长导致的溢出问题。在VS2017中,为了程序的安全性,已弃用scanf,推荐使用scanf_s。
简单区别:
例如: str[5]
注意:vs2017已经不再使用scanf()输入数据,只能用scanf_s,否则会报错

1152

被折叠的 条评论
为什么被折叠?