scanf_s与scanf有区别吗?

 我来答
灵德 2024-11-19
展开全部

由化工方面的博士、教授和企业的高级技术人员与管理人员创建的高科技化工企业。主要从事下列产品的开发、生产和相关的技术服务:

▼高纯电子化学品(主要为高纯季铵碱 )

▼季铵碱系列

▼季铵盐系列

▼季膦化合物系列

▼相转移催化剂(PTC)

▼均苯四甲酸 (PMA)

▼均苯四甲酸二酐( 均酐,PMDA)

▼其他精细化学品

具有较强的仪器和化学分析能力,拥有离子色谱、极谱、液相色谱、气相色谱、分光光度计等检测仪,从产品开发到车间生产进行全过程质量跟踪分析与控制,确保产品质量满足顾客要求。

公司宗旨:

▼求真务实

▼技术革新

▼持续改进

▼客户满意 (PTC)

▼保护环境

▼可持续发展

我们竭诚为广大客户提供“优质服务、一流品质、合理价格”。真诚地期待与国内外客户建立良好的交流和合作关系!

一粥美食
高能答主

2022-10-23 · 专注为您带来别样视角的美食解说
一粥美食
采纳数:7300 获赞数:462692

向TA提问 私信TA
展开全部

1、使用区别

scanf()不会检查输入边界,可能造成数据溢出。

scanf_s()会进行边界检查。

2、意思

scanf表示从键盘输入指定格式的数据。如:scanf("%d",x);指从键盘给x输入一个int型(整型)数据;scanf("%f",x);指从键盘给x输入一个float型(实型)数据;
对应的输出为:printf 按照指定的格式输出数据;如printf("%d",x); 指按整型数据输出X中的值。

因为带“_s”后缀的函数是为了让原版函数更安全,传入一个和参数有关的大小值,避免引用到不存在的元素,防止hacker利用原版的不安全性(漏洞)黑掉系统。

3、scanf_s()参数与scanf()不同

例如scanf(“%s”,&name,n),整形n为name类型的大小,如果name是数组,那n就是该数组的大小。

扩展资料

注意事项:

(1)在高版本的 Visual Studio 编译器中,scanf 被认为是不安全的,被弃用,应当使用scanf_s代替 scanf。

(2) 对于字符串数组或字符串指针变量,由于数组名可以转换为数组和指针变量名本身就是地址,因此使用scanf()函数时,不需要在它们前面加上"&"操作符。

(3) 可以在格式化字符串中的"%"各格式化规定符之间加入一个整数,表示任何读操作中的最大位数。

(4) scanf函数中没有类似printf的精度控制。

如: scanf("%5.2f",&a); 是非法的。不能企图用此语句输入小数为2位的实数。

(5) scanf中要求给出变量地址,如给出变量名则会出错

如 scanf("%d",a);是非法的,应改为scanf("%d",&a);才是合法的。

(6) 在输入多个数值数据时,若格式控制串中没有非格式字符作输入数据之间的间隔,则可用空格,TAB或回车作间隔。

C编译在碰到空格,TAB,回车或非法数据(如对“%d”输入“12A”时,A即为非法数据)时即认为该数据结束。

(7) 在输入字符数据(%c)时,若格式控制串中无非格式字符,则认为所有输入的字符均为有效字符。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
灵德
2024-11-19 广告
由化工方面的博士、教授和企业的高级技术人员与管理人员创建的高科技化工企业。主要从事下列产品的开发、生产和相关的技术服务:▼高纯电子化学品(主要为高纯季铵碱 )▼季铵碱系列▼季铵盐系列▼季膦化合物系列▼相转移催化剂(PTC)▼均苯四甲酸 (P... 点击进入详情页
本回答由灵德提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式