printf、scanf、getchar、putchar、sscanf、sprint
printf:
printf()函数的使用:printf 函数是一个标准库函数,它的函数原型在头文件“stdio.h”中。但作为一个特例,不要求在使用printf 函数之前必须包含stdio.h文件或cstdio文件。cstdio是将stdio.h的内容用C++头文件的形式表示出来。stdio.h是C标准函数库中的头文件,即:standard buffered input&output。提供基本的文字的输入输出流操作(包括屏幕和文件等)。
写法:printf(“格式控制字符串”,输出项列表)。
//print:打印 || f:format -> 格式
格式控制字符串:(包含三类字符)
-
普通字符 (即原模原样输出的字符,主要用于做提示信息):
-
格式说明符(以 “%” 开头):一般写法为 “标志、输出最小宽度、.精度、长度、类型”
//、只是为了分隔,实际中不需要写出 、
-
标志:-、+、# 和空格
- :结果左对齐,右边填空格
+ :输出符号(正号或负号)
# :对c、s、d、u 类无影响;
对 o 类,在输出时加前缀 0;
对 x 类,在输出时加前缀 0x;
对 e、g、f 类当结果有小数时才给出小数点。
空格:输出值为正时冠以空格,为负时冠以负号 -
输出最小宽度:一个数字(规定最小“字符”长度),默认如果最后显示不足最小宽度,则字符右对齐(例如:printf("%3d",2) -> 输出 “此处空两格”2);若输入的最小宽度前加个0,则自动补齐时,空位补 0(例如:printf("%03d",2) -> 输出 002)。
-
.精度:. + 数字,表示保留几位小数。
-
长度:长度格式符为 h、l两种,h 表示按短整型量输出,l 表示按长整形量输出。
-
类型:%c、%d、%f、%s、%u、%o、%x、%ld、%lf、%e、%p、%%
c:输出单个字符
s:输出字符串
d:以十进制形式输出带符号整数(正数不输出符号)
ld:长整型
lld:long long int
llu:unsigned long long
u:以十进制形式输出无符号整数
f:以小数形式输出单、双精度实数
//只是在 printf 中 f 既代表 float 又代表 double。在 scanf 中 f 只代表 float,而 double 用 lf 表示
o:以八进制形式输出无符号整数(不输出前缀0)
x X:以十六进制形式输出无符号整数(不输出前缀0x)
p:十六进制输出地址(输出前缀)
e,E:以指数形式输出单、双精度实数
g,G:以 %f 或 %e 中较短的输出宽度输出单、双精度实数
% :输出 % // %%
-
-
转义字符: http://liouwei20051000285.blog.163.com/blog/static/2523674201002493536964/
-
**输出项列表:**此项是可以省略的,当"格式控制字符串"中没有"格式说明符"时,输出项列表省略;若是有"格式说明符"时,输出项列表不能省略,并且有几个格式说明符、输出项列表就必须有几个对应数据类型的表达式,各表达式之间用逗号隔开。
scanf:
写法:scanf(“格式控制字符串”,地址列表)
与printf的区别:
- 第二项为地址
- 多出了一个 lf 类型用来表示 double ,printf 中 f 也可代表 double。
- scanf("%4d",&a),与上面的输出宽度不同,这条语句指读入4位的整数。
注意:
- %c 读一个字符(包括空格);而 %d 等其他类型则遇到空白符(空格、Tab)则终止读入并跳过空白符;而 %s 读入的时候以空格跟换行为读入结束的标志。
- 格式控制字符串中不能含有 转义字符 -> 最好不要
- 地址列表只能是地址,不能是表达式
- 读入字符时,输入的空格也会算作字符
getchar、putchar:
getchar 用来输入单个字符,putchar 用来输出单个字符。
sscanf、sprintf:
scanf、printf 是标准输入输出(即数据的流动是屏幕和变量之间的),而sscafn、sprintf 数据的流动是字符串、字符数组和变量之间的。
格式为:sscanf(str, “%d”, &n)、sprintf(str, “%d”, n)