您的位置首页百科知识

C语言中 scanf_s和 scanf 区别是什么

1、使用区别

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

scanf_s()会进行边界检查。

2、意思

scanf表示从键盘输入指定格式的数据。如:scanf("%d",x);指从键盘给x输入一个int型(整型)数据;scanf("%f",x);指从键盘给x输入一个float型(实型)数据;

对应的输出为:printf 按照指定的格式输出数据;如printf("%d",x); 指按整型数据输出X中的值。

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

C语言中  scanf_s和 scanf  区别是什么

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

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