Printf 与 Scanf
一、printf
1、 基本⽤法
printf() 的作⽤是将参数⽂本输出到屏幕。
它名字⾥⾯的 f 代表 format (格式化),表⽰可以 定制输出⽂本的格式。
printf() 不会在⾏尾⾃动添加换⾏符,运⾏结束后,光标就停留在输出结束的地⽅,不会⾃动换 ⾏。 为了让光标移到下⼀⾏的开头,可以在输出⽂本的结尾,添加⼀个换⾏符 \n 。
printf() 是在标准库的头⽂件 stdio.h 定义的。
使⽤这个函数之前,必须在源码⽂件头部引⼊这 个头⽂件。
2、占位符
printf() 可以在输出⽂本中指定占位符。 所谓 “占位符”,就是这个位置可以⽤其他值代⼊。
上⾯⽰例中, There are %d apples\n 是输出⽂本,⾥⾯的 %d 就是占位符,表⽰这个位置要 ⽤其
他值来替换。
占位符的第⼀个字符⼀律为百分号 % ,第⼆个字符表⽰占位符的类型,
%d 表⽰这 ⾥代⼊的值必须是⼀个整数。
printf() 的第⼆个参数就是替换占位符的值,上⾯的例⼦是整数 3 替换 %d 。
执⾏后的输出结果 就是 There are 3 apples 。
常⽤的占位符除了 %d ,还有 %s 表⽰代⼊的是字符串。
上⾯⽰例中, %s 表⽰代⼊的是⼀个字符串,所以 printf() 的第⼆个参数就必须是字符串,这个例 ⼦是 zhangsan 。执⾏后的输出就是 zhangsan will come tonight 。
输出⽂本⾥⾯可以使⽤多个占位符。
上⾯⽰例中,输出⽂本 %s says it is %d o'clock 有两个占位符,第⼀个是字符串占位 符 %s ,
第⼆个是整数占位符 %d ,分别对应 printf() 的第⼆个参数( lisi )和第三个参数 ( 21 )。
第一个格式串算第一个参数;
执⾏后的输出就是 lisi says it is 21 o'clock 。
printf() 参数与占位符是⼀ 对应关系,如果有 n 个占位符, printf() 的参数就应该有 n + 1 个。
如果参数个数少于对应的占位符, printf() 可能会输出内存中的任意值。
3、占位符列举
printf() 的占位符有许多种类,与 C 语⾔的数据类型相对应。下⾯按照字⺟顺序,列出常⽤的占位 符,⽅便查找,具体含义在后⾯章节介绍。
• %a :⼗六进制浮点数,字⺟输出为⼩写。
• %A :⼗六进制浮点数,字⺟输出为⼤写。
• %c :字符。//char
• %d :⼗进制整数。// int
• %e :使⽤科学计数法的浮点数,指数部分的 e 为⼩写。
• %E :使⽤科学计数法的浮点数,指数部分的 E 为⼤写。
• %i :整数,基本等同于 %d 。
• %f :