函数兄弟
printf:
printf() 的作⽤是将参数⽂本输出到屏幕。它名字⾥⾯的 f 代表 format (格式化),表⽰可以
定制输出⽂本的格式。
在终端就会出现“肖肖”这两个字
printf() 是在标准库的头⽂件 stdio.h 定义的。使⽤这个函数之前,必须在源码⽂件头部引⼊这
个头⽂件。
#include “stdio.h”
printf() 不会在⾏尾⾃动添加换⾏符,运⾏结束后,光标就停留在输出结束的地⽅,不会⾃动换
⾏,为了换行可以在文本的末尾加上\n这个转义字符(也可以在写的时候多敲一行的printf)
占位符
printf() 可以在输出⽂本中指定占位符。 所谓 “占位符”,就是这个位置可以⽤其他值代⼊。
xx=%d是输出⽂本,⾥⾯的 %d 就是占位符,表⽰这个位置要 ⽤其他值来替换。占位符的第⼀个字符⼀律为百分号 % ,第⼆个字符表⽰占位符的类型, %d 表⽰这 ⾥代⼊的值必须是⼀个整数。 printf() 的第⼆个参数就是替换占位符的值,上⾯的例⼦是整数 3 替换 %d 。执⾏后的输出结果 就是xx=3 。 常⽤的占位符除了 %d,还有以下:
• %a :⼗六进制浮点数,字⺟输出为⼩写。• %A :⼗六进制浮点数,字⺟输出为⼤写。• %c :字符。• %d :⼗进制整数。• %e :使⽤科学计数法的浮点数,指数部分的 e 为⼩写。• %E :使⽤科学计数法的浮点数,指数部分的 E 为⼤写。• %i :整数,基本等同于 %d 。• %f :⼩数(包含 float 类型和 double 类型)。• %g :6个有效数字的浮点数。整数部分⼀旦超过6位,就会⾃动转为科学计数法,指数部分的 e为⼩写。• %G :等同于 %g ,唯⼀的区别是指数部分的 E 为⼤写。• %hd :⼗进制 short int 类型。• %ho :⼋进制 short int 类型。• %hx :⼗六进制 short int 类型。• %hu :unsigned short int 类型。• %ld :⼗进制 long int 类型。• %lo :⼋进制 long int 类型。• %lx :⼗六进制 long int 类型。• %lu :unsigned long int 类型。• %lld :⼗进制 long long int 类型。• %llo :⼋进制 long long int 类型。• %llx :⼗六进制 long long int 类型。• %llu :unsigned long long int 类型。• %Le :科学计数法表⽰的 long double 类型浮点数。• %Lf :long double 类型浮点数。• %n :已输出的字符串数量。该占位符本⾝不输出,只将值存储在指定变量之中。• %o :⼋进制整数。• %p :指针。• %s :字符串。• %u :⽆符号整数(unsigned int)。• %x :⼗六进制整数。• %zd : size_t 类型。• %% :输出⼀个百分号。
scanf
当我们有了变量,我们需要给变量输⼊值就可以使⽤ scanf 函数,如果需要将变量的值输出在屏幕上的时候可以使⽤ printf 函数
基本用法
scanf() 函数⽤于读取⽤⼾的键盘输⼊。
程序运⾏到这个语句时,会停下来,等待⽤⼾从键盘输⼊。
⽤⼾输⼊数据、按下回⻋键后, scanf() 就会处理⽤⼾的输⼊,将其存⼊变量。
它的原型定义在头⽂件 stdio.h 。
scanf() 的语法跟 printf() 类似。
scanf("%d",&x);
它的第⼀个参数是⼀个格式字符串,⾥⾯会放置占位符(与 printf() 的占位符基本⼀致),告诉编
译器如何解读⽤⼾的输⼊,需要提取的数据是什么类型。
这是因为 C 语⾔的数据都是有类型的, scanf() 必须提前知道⽤⼾输⼊的数据类型,才能处理数
据。
它的其余参数就是存放⽤⼾输⼊的变量,格式字符串⾥⾯有多少个占位符就有多少个变量。
上⾯⽰例中, scanf() 的第⼀个参数 %d 表⽰⽤⼾输⼊的应该是⼀个整数%d 就是⼀个占位
符, % 是占位符的标志, d 表⽰整数。第⼆个参数 &x表⽰,将⽤⼾从键盘输⼊的整数存⼊变量
x。
返回值:
scanf() 的返回值是⼀个整数,表⽰成功读取的变量个数。
如果没有读取任何项,或者匹配失败,则返回 0 。如果在成功读取任何数据之前,发⽣了读取错误或
者遇到读取到⽂件结尾,则返回常量 EOF。
占位符:
scanf() 常⽤的占位符如下,与 printf() 的占位符基本⼀致。
• %c :字符。
• %d :整数。
• %f : float 类型浮点数。
• %lf : double 类型浮点数。
• %Lf : long double 类型浮点数。
• %s :字符串。
• %[] :在⽅括号中指定⼀组匹配的字符(⽐如 %[0-9] ),遇到不在集合之中的字符,匹配将会
停⽌。