黑魂一代主角:使用printf输出各种格式

来源:百度文库 编辑:偶看新闻 时间:2024/05/04 12:45:15

使用printf输出各种格式

随笔 /genuine 发表于2006-07-20, 11:52

(一)使用printf输出各种格式的字符串

1. 原样输出字符串:
    printf("%s", str);

2. 输出指定长度的字符串, 超长时不截断, 不足时右对齐:
    printf("%Ns", str);             --N 为指定长度的10进制数值

3. 输出指定长度的字符串, 超长时不截断, 不足时左对齐:
    printf("%-Ns", str);            --N 为指定长度的10进制数值

4. 输出指定长度的字符串, 超长时截断, 不足时右对齐:
    printf("%N.Ms", str);           --N 为最终的字符串输出长度
                                    --M 为从参数字符串中取出的子串长度

5. 输出指定长度的字符串, 超长时截断, 不足时左对齐是:
    printf("%-N.Ms", str);          --N 为最终的字符串输出长度
                                    --M 为从参数字符串中取出的子串长度

 ★d格式符,用来输出十进制整数.

                ⑴%d,按整型数据的实际长度输出.

                ⑵%md,m为指定的输出字段的宽度,数据位数小于m,左边补空格,若大于m,按实际长度输出

                ⑶%ld,输出长整型数据(long)

       ★o格式符,以八进制输出整数(不带符号,他将符号位也作为八进制数的一部分了)
                ⑴%o,参考%d的解释.

                ⑵%lo,参考%ld的解释.

                ⑶%mo,参考%md的解释.

        ★x,X格式符,以十六进制输出整数
                也是3种参考%d的解释.
        ★u格式符,用来将unsigned型数据,既无符号数,以十进制形式输出
        ★c格式符,输出一个字符.
        ★s格式符,输出一个字符串.
                ⑴%s,如printf("%s","CHINA")

                ⑵%ms,输出的字符串占m列,字符串长度小于m,左边补空格,如果超出则全部输出.

                ⑶%-ms,串小于m,则在m列范围内字符串左靠,右补空格.

                ⑷%m.ns,输出占m列,但只取字符串左端n个字符.这n个字符输出在m列的右边,然后左边补空格.

                ⑸%-m.ns,和上面的放下,就是n个字符输出在m列的左侧,右边补空格.n>m,那么m自动取n的值,既保证n个字符正常输出.

                printf("%3s,%7.2s,%.4s,%-5.3s\n","CHINA","CHINA","CHINA","CHINA");

        ★f格式符,用来输出实数,以小数形式输出.

                ⑴%f,全部输出,而且输出6位小数.

                ⑵%m.nf,输出数据共占m列,n位小数,如果数据长度小于m那么左边补空格

                ⑶%-m.nf,和上面的m.nf相反,为左靠齐,右补空格.

        ★e,E格式符,以指数形式输出实数

                ⑴%e,不指定输出数据所占的宽度和数字部分的小数位数.

                ⑵%m.ne和%-m.ne,这里n指小数部分的位数

        ★g,G格式符,用来输出实数,它根据数值大小,自动选择f格式还是e格式,(选占宽最少的一种),且不输出无意义的0.这种格式用的不多.