论文部分内容阅读
C语言中的格式控制符对标识符或表达式的格式进行控制,它决定了标识符或表达式的输出数据的长度、对齐方式、小数位数等形式,是 C 语言中一个非常重要的概念,也是学习的难点。本人结合使用情况,将常用的格式控制符以歌诀总结如下,希望对各位初学者、爱好者有所帮助。文中代码在 BC3.1 中进行了验证。
1 常用形式
C 语言中的格式控制符常用形式如下:%[{+,-}] [0][#] [{m,m.n}] [{l,h}] <格式控制符>。
2 使用歌诀
格式控制字符多,结合灵活可寻踪。
[ ] 可选| 互斥,< > 、% 必须用。
+ 为正号- 向左,无+ 无- 按默认。
h、l、L 短长双,d c s f要弄懂。
# 实点无为0 X,数前有0左代空。
两数点隔最常见,整实字串要分清,
前占数宽按实输,后留位数有0充。
3 歌诀解析
(3.1)格式控制字符多,结合灵活可寻踪。
格式控制字符在 printf()等函数中使用比较复杂,尤其是在%和格式转换字符(如 d、c、s、f)之间插入一些“格式控制字符”就更为繁琐,需要理解,才能掌握。
(3.2)[ ]可选|互斥,< > 、%必须用。
中括号[ ]中的内容为可选,尖括号< >中的内容为必选,分隔符|两侧选项只能选其一, %为格式控制的起始符,必须用。
(3.3)+ 为正号- 向左,无+ 无- 按默认。
+:为正数符号,用时将在输出数前加正数符号“+”;
-:是左对齐标志;在没有+/-的情况下,默认为右对齐。
例1:已知程序
#include
void main()
{int a=123;
printf(“ 12345678901234567890\n”);
printf(“a=%d------ ( a=%%d) \n”,a);
printf(“a=%+6d--- ( a=%%+6d) \n”,a);
printf(“a=%-6d--- ( a=%%-6d) \n”,a);
}
运行结果:
12345678901234567890
a=123------ ( a=%d)
a= +123--- ( a=%+6d)
a=123 --- ( a=%-6d)
4)h、l、L 短长双,d c s f要弄懂。
h\l\L: h常用在 d\o\x\u 之前,指定输出短整型(short)数;l在整型前表示输出长整型(long)数 ,在实数前表示输出双精度实型(double)数;L在实数前表示输出长双精度实型(long double)数。d、c、s、f 分别表示整型、字符、字串和实型数据。
5)# 实点无为0 X,数前有0左代空。
#:对实数表示必须输出小数点;对无符号数表示在八、十六进制数前显示前导符 0 或0x 或 0X;
0:表示数据长度小于指定长度时,左边空格用 0 代替;
例2:已知
Unsigned u=32767; double f=2.5e5;
printf(“ 12345678901234567890\n”);
printf(“u=%#010x---- ( u=%%#010x) \n”,u);
printf(“f=%#15.0f---- ( f=%%#15.0f) \n”,f);
运行结果:
12345678901234567890
u=0x00007FFF---- ( u=%#010x)
f= 250000.---- ( f=%#15.0f)
6)两数点隔最常见,整实字串要分清,
7)前占数宽按实输,后留位数有0充。
m\m.n: m 表示输出数据总长度,当指定长度少于数据位数时,按原数输出;n的作用因作用的数据类型不同:
1)整数:输出n 位整数,当整数的位数少于 n时,左边补 0;
2)字符串:只要输出字符串前 n 个字符;
3)实数:指保留的小数位数,不足后面补 0,如小数位大于n则对n+1位四舍五入。
例3:已知
int a=123;
printf(“ 12345678901234567890\n”);
printf(“a=%+6.6d--- ( a=%%6.6d) \n”,a);
printf(“a=%+6.4d--- ( a=%%6.4d) \n”,a);
運行结果:
12345678901234567890
a=000123--- ( a=%6.6d)
a= 0123--- ( a=%6.4d)
例4:已知
char ch=’A’;
double f1=2.5e5,f2=3.14159;
printf(“ 12345678901234567890\n”);
printf(“ch=%04c---- ( ch=%%04c) \n”,ch);
printf(“st=%06.3s----( st=%%6.3s)\n”,”abcd”);
printf(“f1=%-15.0f--------(f1=%%-15.0f) \n”,f1);
printf(“f1=%+15.4f-------- (f1=%%+15.4f) \n”,f1);
printf(“f2=%15.4f-------- (f2=%%15.4f)\n”,f2);
则运行结果是:
12345678901234567890
ch=000A---- ( ch=%04c)
st=000abc---- ( st=%6.3s)
f1=250000 --------( f1=%-15.0f)
f1= +250000.0000-------- ( f1=%%+15.4f)
f2= 3.1416-------- ( f2=%%15.4f)
C 语言中的格式控制符直接影响程序输出的外观,作用非常重要,编程都会与它打交道,学好它,可以借鉴歌诀用心体会、多上机练习,勤思考,养成做笔记的好习惯,相信你会学好的。
1 常用形式
C 语言中的格式控制符常用形式如下:%[{+,-}] [0][#] [{m,m.n}] [{l,h}] <格式控制符>。
2 使用歌诀
格式控制字符多,结合灵活可寻踪。
[ ] 可选| 互斥,< > 、% 必须用。
+ 为正号- 向左,无+ 无- 按默认。
h、l、L 短长双,d c s f要弄懂。
# 实点无为0 X,数前有0左代空。
两数点隔最常见,整实字串要分清,
前占数宽按实输,后留位数有0充。
3 歌诀解析
(3.1)格式控制字符多,结合灵活可寻踪。
格式控制字符在 printf()等函数中使用比较复杂,尤其是在%和格式转换字符(如 d、c、s、f)之间插入一些“格式控制字符”就更为繁琐,需要理解,才能掌握。
(3.2)[ ]可选|互斥,< > 、%必须用。
中括号[ ]中的内容为可选,尖括号< >中的内容为必选,分隔符|两侧选项只能选其一, %为格式控制的起始符,必须用。
(3.3)+ 为正号- 向左,无+ 无- 按默认。
+:为正数符号,用时将在输出数前加正数符号“+”;
-:是左对齐标志;在没有+/-的情况下,默认为右对齐。
例1:已知程序
#include
void main()
{int a=123;
printf(“ 12345678901234567890\n”);
printf(“a=%d------ ( a=%%d) \n”,a);
printf(“a=%+6d--- ( a=%%+6d) \n”,a);
printf(“a=%-6d--- ( a=%%-6d) \n”,a);
}
运行结果:
12345678901234567890
a=123------ ( a=%d)
a= +123--- ( a=%+6d)
a=123 --- ( a=%-6d)
4)h、l、L 短长双,d c s f要弄懂。
h\l\L: h常用在 d\o\x\u 之前,指定输出短整型(short)数;l在整型前表示输出长整型(long)数 ,在实数前表示输出双精度实型(double)数;L在实数前表示输出长双精度实型(long double)数。d、c、s、f 分别表示整型、字符、字串和实型数据。
5)# 实点无为0 X,数前有0左代空。
#:对实数表示必须输出小数点;对无符号数表示在八、十六进制数前显示前导符 0 或0x 或 0X;
0:表示数据长度小于指定长度时,左边空格用 0 代替;
例2:已知
Unsigned u=32767; double f=2.5e5;
printf(“ 12345678901234567890\n”);
printf(“u=%#010x---- ( u=%%#010x) \n”,u);
printf(“f=%#15.0f---- ( f=%%#15.0f) \n”,f);
运行结果:
12345678901234567890
u=0x00007FFF---- ( u=%#010x)
f= 250000.---- ( f=%#15.0f)
6)两数点隔最常见,整实字串要分清,
7)前占数宽按实输,后留位数有0充。
m\m.n: m 表示输出数据总长度,当指定长度少于数据位数时,按原数输出;n的作用因作用的数据类型不同:
1)整数:输出n 位整数,当整数的位数少于 n时,左边补 0;
2)字符串:只要输出字符串前 n 个字符;
3)实数:指保留的小数位数,不足后面补 0,如小数位大于n则对n+1位四舍五入。
例3:已知
int a=123;
printf(“ 12345678901234567890\n”);
printf(“a=%+6.6d--- ( a=%%6.6d) \n”,a);
printf(“a=%+6.4d--- ( a=%%6.4d) \n”,a);
運行结果:
12345678901234567890
a=000123--- ( a=%6.6d)
a= 0123--- ( a=%6.4d)
例4:已知
char ch=’A’;
double f1=2.5e5,f2=3.14159;
printf(“ 12345678901234567890\n”);
printf(“ch=%04c---- ( ch=%%04c) \n”,ch);
printf(“st=%06.3s----( st=%%6.3s)\n”,”abcd”);
printf(“f1=%-15.0f--------(f1=%%-15.0f) \n”,f1);
printf(“f1=%+15.4f-------- (f1=%%+15.4f) \n”,f1);
printf(“f2=%15.4f-------- (f2=%%15.4f)\n”,f2);
则运行结果是:
12345678901234567890
ch=000A---- ( ch=%04c)
st=000abc---- ( st=%6.3s)
f1=250000 --------( f1=%-15.0f)
f1= +250000.0000-------- ( f1=%%+15.4f)
f2= 3.1416-------- ( f2=%%15.4f)
C 语言中的格式控制符直接影响程序输出的外观,作用非常重要,编程都会与它打交道,学好它,可以借鉴歌诀用心体会、多上机练习,勤思考,养成做笔记的好习惯,相信你会学好的。