一:基本用法
printf和scanf都是库函数,使用时需引用头文件<stdio.h>
1:printf:
"f"是format(格式)的缩写,printf的作用是将参数文本输出到屏幕。如:字符串的输出
2:scanf:
用于读取用户的输入。当程序运行到这个语句时,程序会停下来,等待用户的输入,输入后程序继续执行。
处理用户输入的原理是:用户先输入的先放入缓存,等按下回车键时,按照占位符对缓存进行解读。
当输入5时,程序执行如下图:
二:占位符
定义:就是这个位置可以用其他值代入。格式字符串中有几个占位符,就有几个变量。
常用的占位符有:%d(十进制整数),%c(字符型),%s(字符串型),%f(小数,包含float和double),%%(输出一个百分号)
删除线格式
使用scanfhans函数时的特殊占位符:%c,%s
1:%c不会忽略空白字符,总是返回当前的第一个字符。
无空白字符时,如下图所示:
有空白字符时,如下图所示:
如果想要强制跳过字符前的空白字符,可以在%c前加上一个空格,表示跳过0个或多个空白字符。
2:%s从当前的第一个非空白字符开始读起,直到遇到空白字符(空格,换行符,字符表等)结束。
如下图:
scanf将字符串读入字符数组时不会检测字符串是否超过了数组长度,为了防止错误发生,使用%s时指定字符串的最长长度,写成%[m]s,[m]是一个整数,表示字符串的最长长度,后面的字符被丢弃。
改正后:
三:限定宽度和小数位数
##1: 宽度的限制
从上例,%5d表示这个占位符最少长度为5,如不满5位,在结果前面加空格,也就是右对齐。“-”表示在结果后加空格,也就是左对齐,如下图所示:
2:小数位数的限制
3:部分字符串的输出
4:scanf函数具有返回值,表示成功读取的变量的个数。如果没有读取到任何项,或匹配失败,则返回0.如果在成功读取任数据之前,发生了读取错误或遇到文件结尾,则返回常量EOF.