一.printf函数(输出函数):
%为占位符。注意要用双引号。
1)%f:用于读取浮点数,并存储到相应的浮点数变量中。
1.小数默认显示6位。
2.在%和f中间加上一个 . 就是表示限定小数后面的位数了,想要几位就在 .后面输入数字就行,比如现在是.2表示显示2位小数。
3.以浮点数的形式打印0.5,,那么6.2中的6表示总共6位宽,小数点后有2位。
4.以浮点数的形式打印0.5,,*.*表示总位宽和小数位宽由后面输入的值确定,也就是后面的6和2。
2)%d:用于读取有符号十进制整数,并存储到相应的整数变量中。
1.printf("%5d\n", 111);printf("%-5d\n", 111):以十进制的方式打印,让输出的值有5位宽,但现在只有3位宽,那么就默认在前面加2个空格以达到最小5位,那么在将5变为-5意思是将空格补到右边如结果图所示。
2.默认负号本身要显示。+d的意思就是在整数前面显示正号。
3)%s:用于读取字符串,并存储到相应的字符数组中。
1.默认是全部输出。如果如果只想输出开头的部分,可以⽤ %.[n]s指定输出的⻓度,其中[n]代表⼀个数字,表示所要输出位宽。
2.char :表示该字符串里面存放的都是字符
arr :为字符串变量的名称
[ ] :在声明字符串变量的规定必须要有的符号,可以存放常量表达式如:10,来指定字符串长度,这里的字符串长度是指向内存申请的空间,因为一个char类型数据占内存大小为1个字节,这里申请了10个长度的大小,所以会占10个字节的内存空间。
注意,上述语句声明时一定要指定数组长度,也就是‘[ ] ’这里面一定要填一个具体的数值。因为变量在声明时就会向内存要空间,如果不知名字符串长度,则无法向内存申请空间。
'\0'为结束标识符。
printf("%s",arr1); //打印的结果是abc
printf("%s",arr2); //在打印完abc之后,后面还会继续打印无法预知的东西,直到内存中读取到
字符串结束标识符'\0'才会结束打印。
4)%c:用于读取单个字符,并存储到相应的字符变量中。
1.与%s区别为%c只能读取单个字符,而%s可读取字符串。
二.scanf函数(输出函数):
1)scanf的语法和printf的语法基本相同,还有scanf()必须提前知道数据的整型,也就是%什么,语句中有几个占位符,就必须有几个变量。不同点在于scanf中必须存在一个取址符&,其作用为定位到之前所定义的变量。例如,如果声明一个整型变量int a;,那么&a就会返回变量a的内存地址。
2)scanf函数不能加\n,并且用户输入时,要空格或用制表符或回车。
scanf函数再处理占位符时,会自动过滤空白字符,空格,回车,换行,制表符。
3)scanf函数前需定义变量。
例如int = 0,float = 0.0。其中int为整型,对应“%d”,float为浮点型,对应“%f”。
4)%s :
1.它其实不能简单地等同于字符串。它的规则是,从当前第⼀个⾮空⽩字符开始读起,直到遇到空⽩字符(即空格、换⾏符、制表符等)为止。
例如:
输入空格结果为:
2.因为 %s 不会包含空⽩字符,所以⽆法⽤来读取多个单词,除⾮多个 %s ⼀起使⽤。这也意味着, scanf() 不适合读取可能包含空格的字符串,⽐如书名或歌曲名。另外, scanf() 遇到 %s 占位符,会在字符串变量末尾存储⼀个空字符 \0。
5)%c:
1.%c 不忽略空⽩字符,总是返回当前第⼀个字符,⽆论该字符是否为空格。
例如:
则不输入空格结果为: 输入空格结果为:
2. 如果要强制跳过%c读取空格,可在scanf中的%c前加空格。
例如:
结果为: