国际标准ANSI C中没有scanf_s()函数,只有scanf()函数,scanf()函数在读取时不检查边界,所以可能会造成内存泄露。故VC++2005/2008中提供了scanf_s()函数,在调用时,必须提供一个数字n以表明最多读取多少位字符。
1. scanf()函数
scanf()函数是库stdio.h中的一个函数,scanf ()函数功能是“通过外界键盘给源代码中的变量赋值”。该函数有两种用法,分别是:
① scanf(“输入控制符”, 输入参数);
功能:将从外界键盘输入的字符转化为“输入控制符”所规定格式的数据,然后存入以输入参数的值为地址的变量中。
#include <stdio.h>
int main()
{
int a = 0;
int b =<

本文详细介绍了C语言中的输入函数scanf()及其安全性问题,指出在VC++2005/2008及以上版本中,由于内存安全原因推荐使用scanf_s()。讲解了scanf()函数的两种用法,并列举了常用输入控制符。同时,解释了scanf_s()函数的额外参数用于限制读取字符数量,以避免内存泄露。最后,提供了在VS中解决scanf()报错的两种方案:使用scanf_s()或禁用安全警告。
最低0.47元/天 解锁文章
1726

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



