首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

C语言字符串格式化显示

Posted on 2009-11-01 22:48  放飞自我  阅读(29706)  评论(1编辑  收藏  举报

 符号                  作用
──────────────────────────
    %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.