正在加载图片...
靳润昭C语言教程讲义 2001年2月17日 输出字符串 2)标志:标志字符为-、+、#、空格四种,其意义下表所示: 结果左对齐,右边填空格 输出符号(正号或负号) 空格输出值为正时冠以空格,为负时冠以负号 对c,s,d,u类无影响;对o类,在输出时加前缀o:对x类,在输出时 加前缀0x:对e,g,f类当结果有小数时才给出小数点 3)输出最小宽度:用十进制整数来表示输出的最少位数。若实际位数多于定义的宽度, 则按实际位数输出,若实际位数少于定义的宽度则补以空格或0。 4)精度:精度格式符以ν."开头,后跟十进制整数。本项的意义是:如果输出数字, 则表示小数的位数:如果输出的是字符,则表示输出字符的个数:若实际位数大于 所定义的精度数,则截去超过的部分。 5.长度:长度格式符为h,两种,h表示按短整型量输出,1表示按长整型量输出。 【例4.4】 main O int a=15 float b=123.1234567; double c=12345678.1234567; char d=p printf(a=%d, %5d, %6o, %x\n", a, a, a, a) printf( b=%f, %1f, %65 41f, %e\n", b, b, b, b) printf( c=%1f, %f, %8. 41f\n", c, c, c) printf( d=%c, %8c\n", d, d) 本例第七行中以四种格式输出整型变量a的值,其中%5d〃要求输出宽度为5,而a 值为15只有两位故补三个空格。第八行中以四种格式输出实型量b的值。其中ν%f和 %lf〃格式的输出相同,说明"1〃符对f"类型无影响。‰5.4lf〃"指定输出宽度为5,精度 为4,由于实际长度超过5故应该按实际位数输出,小数位数超过4位部分被截去。第九行 输出双精度实数,"%8.41f〃由于指定精度为4位故截去了超过4位的部分。第十行输出字 符量d,其中"%8c〃指定输出宽度为8故在输出字符p之前补加7个空格 使用 printf函数时还要注意一个问题,那就是输出表列中的求值顺序。不同的编译系 统不一定相同,可以从左到右,也可从右到左。 Turbo C是按从右到左进行的。请看下面两 个例子: 【例4.5】 maln int i=8 printf("%d\n%dn%dn%dn%dm%dn”,++i,一i,i++,i一,-i++,-i一) 第7页靳润昭 C 语言教程讲义 2001 年 2 月 17 日 第7页 s 输出字符串 2) 标志:标志字符为-、+、#、空格四种,其意义下表所示: 标 志 意 义 - 结果左对齐,右边填空格 + 输出符号(正号或负号) 空格 输出值为正时冠以空格,为负时冠以负号 # 对 c,s,d,u 类无影响;对 o 类,在输出时加前缀 o;对 x 类,在输出时 加前缀 0x;对 e,g,f 类当结果有小数时才给出小数点 3) 输出最小宽度:用十进制整数来表示输出的最少位数。若实际位数多于定义的宽度, 则按实际位数输出,若实际位数少于定义的宽度则补以空格或 0。 4) 精度:精度格式符以“.”开头,后跟十进制整数。本项的意义是:如果输出数字, 则表示小数的位数;如果输出的是字符,则表示输出字符的个数;若实际位数大于 所定义的精度数,则截去超过的部分。 5.长度:长度格式符为 h,l 两种,h 表示按短整型量输出,l 表示按长整型量输出。 【例 4.4】 main() { int a=15; float b=123.1234567; double c=12345678.1234567; char d='p'; printf("a=%d,%5d,%o,%x\n",a,a,a,a); printf("b=%f,%lf,%5.4lf,%e\n",b,b,b,b); printf("c=%lf,%f,%8.4lf\n",c,c,c); printf("d=%c,%8c\n",d,d); } 本例第七行中以四种格式输出整型变量 a 的值,其中“%5d ”要求输出宽度为 5,而 a 值为 15 只有两位故补三个空格。 第八行中以四种格式输出实型量 b 的值。其中“%f”和 “%lf ”格式的输出相同,说明“l”符对“f”类型无影响。“%5.4lf”指定输出宽度为 5,精度 为 4,由于实际长度超过 5 故应该按实际位数输出,小数位数超过 4 位部分被截去。第九行 输出双精度实数,“%8.4lf ”由于指定精度为 4 位故截去了超过 4 位的部分。第十行输出字 符量 d,其中“%8c ”指定输出宽度为 8 故在输出字符 p 之前补加 7 个空格。 使用 printf 函数时还要注意一个问题,那就是输出表列中的求值顺序。不同的编译系 统不一定相同,可以从左到右,也可从右到左。Turbo C 是按从右到左进行的。请看下面两 个例子: 【例 4.5】 main(){ int i=8; printf("%d\n%d\n%d\n%d\n%d\n%d\n",++i,--i,i++,i--,-i++,-i--); }
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有