scanf_s函数与scanf函数的联系,以及scanf函数和scanf_s函数的具体用法

目录

一.scanf()和 scanf_s()主要有以下几个区别:

二.scanf_s()函数和scanf()函数的简单示例

scanf函数 

scanf_s()函数


 

一.scanf()和 scanf_s()主要有以下几个区别:

1.安全性

  • scanf()函数不进行检查输入边界,这可能导致数据溢出等问题
  • scanf_s()函数进行检查输入边界,确保不会读取超过用户为缓存区分配的字符数,大大提高了安全性

2.使用方式

  • scanf()函数通常只读取一个格式字符串
  • scanf_s() 需要提供两个参数:一个是用于存储输入的缓冲区,另一个是表示要读取的最大字符数。

3.平台的依赖性

  • scanf()是C语言的标准库函数,适用于大多数支持C语言的平台上。
  • scanf_s()是微软的专有扩展,可能在非MSVC编译器中不支持。

4.性能

  • scanf_s()函数性能较强,因为它一定程度上避免了不必要的内存分配

二.scanf_s()函数和scanf()函数的简单示例

  • scanf函数 

 1.scanf(“输入控制符”,输入参数);

%d 读入十进制整数
%o 读入八进制整数
%x,%X 读入十六进制整数
%c 读入一个字符
%s 读入一个字符串
%f,%F,%e,%E,%g,%G 用来输入实数,可以用小数形式或指数形式输入。
%u 读入一个无符号十进制整数
h用于d,o,x前,指定为short
l用于d,o,x前,指定为long,用e,f 前指定为double

2,scanf(“非输入控制符 输入控制符”,输入参数);

3.通过scanf进行赋值

 1 指定输入数据所占列宽scanf(“%3d%3d”,&a,&b)
            
 2,%后面加‘*’用来抑制输入。scanf(“%2d%*3d%2d”,&a,&b)
          
 3,  输入数据流分隔。根据格式字符的含义从输入流中取得数据,当输入流中数据类型与格式字符要求不符时,就认为这一项结束。
 
 4,隐示分隔符。空格、制表符’\t’,换行符/回车键’\n’都是C语言认定的数据分隔
 符。

  • scanf_s()函数

 1.使用方法都大致相同

2.关键与scanf()函数的不同是,scanf_s函数具有更高的安全性,一定程度上避免了缓存区的溢出问题

例:

  • 8
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值