转义字符 转义字符的意义 ASCII代码
\n 回车换行 10
\t 横向跳到下一制表位置 9
\b 退格 8
\r 回车 13
\f 走纸换页 12
\ 反斜线符"" 92
’ 单引号符 39
\” 双引号符 34
\a 鸣铃 7
\ddd 1~3位八进制数所代表的字符
\xhh 1~2位十六进制数所代表的字符
广义地讲,C语言字符集中的任何一个字符均可用转义字符来表示。表中的\ddd和\xhh正是为此而提出的。ddd和hh分别为八进制和十六进制的ASCII代码。如\101表示字母"A" ,\102表示字母"B",\134表示反斜线,\XOA表示换行等。
1、format 参数
format 参数是一个格式化字符串,由格式化占位符和普通字符组成。
格式化占位符(以 % 开头)用于指明输出的参数值如何格式化。
格式化占位符的语法如下:
`%[flags][width][.precision][length]specifier
格式占位符(%)是在C/C++语言中格式输入函数,如scanf、printf等函数中使用。其意义就是起到格式占位的意思,表示在该位置有输入或者输出。
每一个格式化占位符均以 % 开始,以转换字符结束。
specifier(转换字符,必选)的内容及含义如下:
转换字符
格式占位符(%)可以以下字母配合使用用来表示某些特定的输入输出。
%a,%A 读入一个浮点值(仅C99有效)
%c 读入一个字符
%d 读入十进制整数
%i 读入十进制,八进制,十六进制整数
%o 读入八进制整数
%x,%X 读入十六进制整数
%s 读入一个字符串,遇空格、制表符或换行符结束。
%f,%F, 用来输入浮点数,可以用小数形式或。
%e,%E 读一个指数形式
%g,%G 用来输入实数,可以用小数形式。
%p 读入一个指针
%u 读入一个无符号十进制整数
%n 至此已读入值的等价字符数
%[] 扫描字符集合
%% 读%符号
%llu对应的数据类型为unsigned long long,这是C语言用来表示整数的最大类型。
注:如果 % 后边的字符不是转换字符,则其行为没有定义。
scanf("%d,%d,%d",&a,&b,&c); // 从键盘输入三个整数,用逗号分隔
scanf("%c", &s); //从键盘输入一个字符
scanf("%f", &f); //从键盘输入一个浮点型数据
printf("%d\n",a); //输出一个整数
printf("%f\n",b); //输出一个浮点数
printf("%s\n",c); //输出一个字符
flags(标志,可选)的内容即含义如下:
标志
含义
指定被转换的参数在其字段内左对齐(默认是右对齐)
+
指定在输出的数前面加上正负号
空格
如果第一个字符不是正负号,则在其前面加上一个空格
0
对于数值转换,当输出长度小于字段宽度时,添加前导 0 进行填充
指定另一种输出形式:
- 如果转换字符为 o,则第一个数字为 0
- 如果转换字符为 x 或 X,则指定在输出的非 0 值钱加 0x 或 0X
- 对于转换字符为 e、E、f、g 或 G 的情况,指定输出总是包含一个小数点。另外,对于转换字符为 g 或 G,还指定输出值尾部无意义的 0 将被保留
注:flags 可同时出现多个,且无顺序要求。
width(宽度,可选)是一个数值,用于指定最小字段的宽度
转换后的参数输出宽度至少要达到这个数值。如果参数的字符数小于该数值,则在参数左边(如果 flags 设置为 -,要求左对齐的话则在右边)填充一些字符。填充字符通常为空格,但是如果 flags 设置为 0,则填充字符为数字 0。
.precision(.精度,可选),通过点号(.)分隔字段的宽度和精度
对于字符串,它指定打印的字符的最大个数
对于整数,它指定打印的数字位数(必要时可加填充位 0 以达到宽度要求)
对于转换字符为 e、E 或 f,它指定打印的小数点后的数字位数
对于转换字符为 g 或 G,它指定打印的有效数字位数
length(长度修饰符,可选)的值可以是 h、hh、l、ll 或 L
hh 表示将相应的参数按 signed char 或 unsigned char 类型输出
h 表示将相应的参数按 short 或 unsigned short 类型输出
l 表示将相应的参数按 long 或 unsigned long 类型输出
ll 表示将相应的参数按 long long 或 unsigned long long 类型输出
L 表示将相应的参数按 long double 类型输出