• printf命令详解


    请参考:http://www.zsythink.net/archives/1411

    printf命令模仿了C语言中printf( )函数。

    printf命令的作用是按照我们指定的格式输出文本

    可以根据传入参数的不同,使用不同的"格式替换符"去替换。

    那么,还有哪些格式替换符呢?常用的格式替换符总结如下。

    %s 字符串

    %f 浮点格式(也就是我们概念中的float或者double)

    %b 相对应的参数中包含转义字符时,可以使用此替换符进行替换,对应的转义字符会被转义。

    %c ASCII字符。显示相对应参数的第一个字符

    %d, %i 十进制整数

    %o 不带正负号的八进制值

    %u 不带正负号的十进制值

    %x 不带正负号的十六进制值,使用a至f表示10至15

    %X 不带正负号的十六进制值,使用A至F表示10至15

    %% 表示"%"本身

    说完了"格式替换符",再来说说"转义字符",刚才的示例中,我们只用到了" "这个转义符,还有很多其他的转义符,printf中的转义字符与其他程序中的转义字符没有什么不同,此处我们只是总结出来,方便大家使用。printf常用的转义符如下。

    a 警告字符,通常为ASCII的BEL字符

     后退

    c 抑制(不显示)输出结果中任何结尾的换行字符(只在%b格式指示符控制下的参数字符串中有效),而且,任何留在参数里的字符、任何接下来的参数以及任何留在格式字符串中的字符,都被忽略

    f 换页(formfeed)

    换行

    回车(Carriage return)

    水平制表符

    v 垂直制表符

    \ 一个字面上的反斜杠字符,即""本身。

    ddd 表示1到3位数八进制值的字符,仅在格式字符串中有效

    ddd 表示1到3位的八进制值字符

    我们只是在原来的"格式替换符"中间加入了特定的数字,貌似显示效果就比刚才好了一点,起码年龄字段对应数字与"年龄"两个字对齐了。那么这些数字是什么意思呢?上图中第一个"%7s"中间的7表示当前替换符对应的输出宽度为7个字符宽,如果对应的输出不足7个字符,则用空格补全,如果输出的长度超过7个字符,超出的部分也会显示。同理"%5s"表示当前替换符对应的输出宽度为5个字符的宽度。而这些数字,我们可以将其称之为"修饰符",修饰符会对相应的"替换符"进行修饰。

    神马?看右对齐不顺眼,想要左对齐?好吧,满足你!看下图。

     与之前的"格式"相比,只是在原来的修饰符前面加入了"-","-"表示左对齐,默认不加"-"时表示右对齐,其实"-"也是修饰符

    除了数字和"-",还有另一种修饰符,就是"+"

    "+"可不代表右对齐,因为我们前面已经说过,不加"-"修饰符的时候,默认就是右对齐。那么"+"修饰符表示什么意思呢?看下图你就会明白。

    如上图所示,在默认没有添加"+"作为修饰符时,烈火兽的体温输出为180,而使用了"+"修饰符以后,烈火兽的体温输出为+180,看到这里你应该明白了,当替换符对应的参数为数字时,可以使用"+"作为修饰符,输出"正数"前面的"正号"。

    现在我们已经学会了3种修饰符

    "数字"

    "+"

    "-"

    其实数字修饰符还有另外的一些特殊用法,如下图所示。

    上图中,第一条命令的数字修饰符为12,表示对应的替换符"%f"的输出宽度为12个字符,第二条命令的数字修饰符为12.3 ,表示对应的替换符"%f"的输出宽度为12个字符,并且小数点的精度为3。

    没错,当替换符为"%f"时,如果数字修饰符带有小数点,则数字修饰符小数点后的数字表示对应小数精度

    而当格式替换符为"%d"时,如果数字修饰符带有小数点,则数字修饰符小数点后的数字表示整数的长度,长度不够时,高位用0补全,如下图所示。

  • 相关阅读:
    排序比较与总结
    Oracle误删恢复
    DSP TMS320C6000基础学习(4)—— cmd文件分析
    NYOJ 488 素数环
    Oracle常用语句记录
    Cocoa编程开发者手册
    Unity3d物体模型(实现旋转缩放平移自动旋转)
    django 创建一个通用视图
    ContentResolver + SqliteOpenHelper + ContentProvider 理解
    线性回归,logistic回归和一般回归
  • 原文地址:https://www.cnblogs.com/faberbeta/p/printf.html
Copyright © 2020-2023  润新知