不安全函数(scanf等的报错)

VC++中可以使用scanf,但建议使用scanf_s替代。理由如下:

C语言中使用scanf,而C++认为scanf是不安全的。因为scanf函数自身不会检查输入数据的长度,容易导致缓冲区溢出,故存在安全缺陷。

char str[10];
scanf("%s",str); //如果输入超过10个字符,就会导致缓冲区溢出

C11标准可选地引入了一系列带_s后缀的"安全函数",这些函数要求格式说明符如%s,%c,%[]等提供缓冲区大小作为额外参数。

其他不安全的函数如:gets()(老标准的C函数)—>gets_s

gets_s(line,sizeof(line));
————————————————
版权声明:本文为CSDN博主「阳冲亦右」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_53606700/article/details/160867531

posted @ 2026-05-08 13:25  阳冲亦右  阅读(18)  评论(0)    收藏  举报