您的位置:首页 > 其它

printf 字符串输出固定长度

2006-09-11 12:57 309 查看
#include <stdio.h>

void main()
{
   char str[20] = "abcdefg";
    double n = 10.1234567;
 printf("%.3s /n", str);
 printf("%.3f /n", n);
}

 

输出:abc
          10.123

下面对printf中的%.M输出做一下简单的分析,在printf的定义中,回解析所有的字符有自己的协议栈来分析format的参数,其中,

/* 一下内容来自output.c-------------------------------------------------------

 while ((ch = *format++) != _T('/0') && charsout >= 0) {
        chclass = find_char_class(ch);  /* find character class */
        state = find_next_state(chclass, state); /* find next state */
      /* execute code for each state */
        switch (state) {
......
                case ST_DOT:
            /* zero the precision, since dot with no number means 0
               not default, according to ANSI */
            precision = 0;
            break;

--------------------------------------------------------------*/

就如代码中所说的,如果小数点后面不是数字,则按照ANSI标准来格式化后面的输出,来比较输出的长度
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  character class include each