scanf()函数是什么意思?
正确答案是:C它是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。按格式的要求,每个变量前都要有地址符,故s1和s2前面都需要用到地址符&。A、B、D选项中都不能满足s1、s2前面都有&的要求,所以C为正确答案。用软件运行C选项的代码,编译中0个错误,0个警告,验证C答案正确。扩展资料:scanf()是C语言中的一个输出函数。与printf函数一样,都被声明在头文件stdio.h里,因此在使用scanf函数时要加上#include 。scanf()函数的指定输入格式有很多种,下面是一些比较常用的格式:%d:读入可选有符号的十进制整数。%u:读入无符号符号十进制整数。%a,e,f,g,A,E,F,G: 读入可选有符号浮点数,输入格式应该像strtod函数识别的字符序列一样。%o:读入可选有符号八进制整数。%s:读入一个的字符序列,后面会加上空字节,遇到空白字符(\t \r \n 空格等)完成读取。参考资料:百度百科-scanf
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利用原版的不安全性(漏洞)黑掉系统。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)时,若格式控制串中无非格式字符,则认为所有输入的字符均为有效字符。