C语言字符串格式化显示

1570阅读 0评论2013-09-05 double_lq
分类:C/C++

符号                  作用 
────────────────────────── 
    %d              
十进制有符号整数 
    %i              
输入整数 ,可以是带前导0的八进制数或0x的十六进制数
    %u              
十进制无符号整数 
    %f              
浮点数 
    %s              
字符串 
    %c              
单个字符 
    %p              
指针的值(内存地址) 
    %e              
指数形式的浮点数 
    %x, %X          
无符号以十六进制表示的整数 
    %0              
无符号以八进制表示的整数 
    %g, %G          
自动选择合适的表示法 
━━━━━━━━━━━━━━━━━━━━━━━━━━

格式字符串的一般形式为:

 [标志][输出最小宽度][.精度][长度]类型

其中方括号[]中的项为可选项。各项的意义介绍如下:

  1.类型类型字符用以表示输出数据的类型,其格式符和意义下表所示:

        表示输出类型的格式字符 格式字符意义

        以十进制形式输出带符号整数(正数不输出符号)

        以八进制形式输出无符号整数(不输出前缀O)

        以十六进制形式输出无符号整数(不输出前缀OX)

        以十进制形式输出无符号整数

        以小数形式输出单、双精度实数

        以指数形式输出单、双精度实数

        %f%e中较短的输出宽度输出单、双精度实数

        输出单个字符

        输出字符串  

  2.标志

  标志字符为-+#、空格四种,其意义下表所示:

标志格式字符    

结果左对齐,右边填空格

输出符号(正号或负号)空格输出值为正时冠以空格,为负时冠以负号

csdu类无影响;对o类, 在输出时加前缀。对x类,在输出时加前缀0x;对e,g,f 类当结果有小数时才给出小数点    

  3.输出最小宽度

  用十进制整数来表示输出的最少位数。 若实际位数多于定义的宽度,则按实际位数输出, 若实际位数少于定义的宽度则补以空格或0

  4.精度

  精度格式符以“.”开头,后跟十进制整数。本项的意义是:如果输出数字,则表示小数的位数;如果输出的是字符, 则表示输出字符的个数;若实际位数大于所定义的精度数,则截去超过的部分。

  5.长度

  长度格式符为h,l两种,h表示按短整型量输出,l表示按长整型量输出
说明:
(1)
、可以在”%”和字母之间插进数字表示最大场宽。
例如: %3d 表示输出3位整型数不够3位右对齐。
%9.2f 
表示输出场宽为9的浮点数其中小数位为2, 整数位为6,小数点占一位不够9位右对齐。
%8s 
表示输出8个字符的字符串不够8个字符右对齐。
如果字符串的长度、或整型数位数超过说明的场宽将按其实际长度输出。
但对浮点数若整数部分位数超过了说明的整数位宽度将按实际整数位输出;若小数部分位数超过了说明的小数位宽度则按说明的宽度以四舍五入输出。
另外若想在输出值前加一些0, 就应在场宽项前加个0
例如: %04d 表示在输出一个小于4位的数值时将在前面补0使其总宽度为4位。
如果用浮点数表示字符或整型量的输出格式小数点后的数字代表最大宽度,小数点前的数字代表最小宽度。
例如: %6.9s 表示显示一个长度不小于6且不大于9的字符串。若大于9, 则第9个字符以后的内容将被删除。
(2)
、可以在”%”和字母之间加小写字母l, 表示输出的是长型数。
例如: %ld 表示输出long整数,%lf 表示输出double浮点数
(3)
、可以控制输出左对齐或右对齐即在”%”和字母之间加入一个”-” 号可说明输出为左对齐否则为右对齐。
例如: %-7d 表示输出7位整数左对齐,%-10s 表示输出10个字符左对齐
(4)
、可以在格式化字符和%之间加一个*号,用来跳过对应的输入数据。
例如:scanf("%d%*d%d",&a,&b);当输入10 20 30时,ab的值分别是1030.



上一篇:Unix网络编程一之判断字节序列
下一篇: Unix网络编程迭代服务器与并发服务器