转换说明 & 转义字符
一、格式化规定符
%d
%i
—— 带符号的十进制形式整数(int)%u
—— 无符号的十进制形式整数 (unsigned)%f
—— 小数点形式的单精度实数,浮点数,十进制记数法(默认小数点后6位) (float)%lf
—— 小数点形式的双精度实数,浮点数,十进制记数法(默认小数点后6位) (double)%e
%E
—— 标准指数形式的单、双精度实数,浮点数,e记数法%o
—— 无符号的八进制形式整数%x
%X
—— 无符号的十六进制形式整数%c
—— 字符 (char)%s
—— 字符串 (char[ ])%p
—— 指针(地址) (*p)%g
—— 选用宽度较小的格式输出实数,自动选择合适的表示方法%%
—— 打印 %
-
注意
- 格式化规定符一定要与对应的数据类型或数据匹配,如%d不能对应小数或字符,%u不能对应负数,%c不能对应字符串等等,如果匹配出现错误,可能会导致数据部分丢失或出现垃圾数,从而得不到想要的结果。
- printf(“%s”,q); —— 控制符%s可以从q指向的那个字符开始,一个接一个地把字符打印到屏幕上,直到碰到’\0’为止,且不输出’\0’“。
-
例
#include <stdio.h> int main( void ) { //%d int a = 74; printf("%d ",2); printf("%d ",-5); printf("%d ",a); printf("\n"); //%i int b = -23; printf("%i ",232); printf("%i ",-56); printf("%i ",b); printf("\n"); //%u unsigned c = 231; printf("%u ",21); printf("%u ",34); printf("%u ",c); printf("\n"); //%f float d = -66.78; printf("%f ",21.23); printf("%f ",-34.00); printf("%f ",d); printf("\n"); //%lf double e = -66.78; printf("%lf ",21.23); printf("%lf ",-34.00); printf("%lf ",e); printf("\n"); //%e %E double f = -352923.4; float g = 34.672; printf("%e ",212.31); printf("%E ",-34121.00); printf("%e ",f); printf("%E ",g); printf("\n"); //%o int h = 742; printf("%o ",0); printf("%o ",1235); printf("%o ",h); printf("\n"); //%x %X int i = 3529; int j = 34275; printf("%x ",211); printf("%X ",9312); printf("%x ",i); printf("%X ",j); printf("\n"); //%c char k = 'a'; printf("%c ",'s'); printf("%c ",k); //%s char m[] = "Thanks"; printf("%s ","Tom"); printf("%s ","hello"); printf("%s ",m); printf("\n"); //%p int* n; n = &a; printf("%p ",&a); printf("%p ",n); printf("\n"); //%g double o = 5634.96; float p = 6.234; printf("%g ",13131.63523); printf("%g ",o); printf("%g ",p); printf("\n"); //%% printf("%%"); }
二、转义字符
\a
—— C90新增的警报字符\a
是否能产生听到或看到的警报,取决于计算机的硬件,蜂鸣是最常见的警报。(在一些系统中,警报字符不起作用)
\b
—— 将光标退回一格
- 例
\f
—— 将光标移至下一页开始处
\n
—— 将光标移至下一行开始处
- 例
\r
—— 将光标移至当前行开始处
- 例
\t
—— 补全当前字符串长度到8的整数倍(跳到下一个tab的位置),最少1个最多8个空格,补多少看\t前字符串长度。(当前字符串长度10,那么\t后长度是16,也就是补6个空格;当前字符串长度12,此时\t后长度是16,补4个空格)
- 例
\v
—— 后面的字符从下一行开始输出,且开始的列数为“\v”前一个字符所在列后面一列
\\
—— 打印一个反斜杠\
(不是注释)
\'
—— 打印一个单引号‘
\”
—— 打印一个双引号“
\?
—— 打印一个问号
- 例
\0oo
—— 用八进制ASCII码表示一个字符
\xhh
—— 用十六进制ASCII码表示一个字符