我的学习之旅(22)vsprintf.c

来源:互联网 发布:数据库ip地址怎么查 编辑:程序博客网 时间:2024/05/06 05:38
    if (type & SPECIAL) {        if (base == 8) {            *str++ = '0';        } else if (base == 16) {            *str++ = '0';            *str++ = digits[33];        }    }    if (!(type & LEFT)) {        while (size-- > 0) {            *str++ = c;        }    }    while (i < precision--) {        *str++ = '0';    }    while (i-- > 0) {        *str++ = tmp[i];    }    while (size-- > 0) {        *str++ = ' ';    }    return str;}int vsprintf(char *buf, const char *fmt, va_list args){    int len, i;    char *str, *s;    int *ip;    int flags;      /* flags to number() */    int field_width;    /* width of output field */    int precision;      /* min. # of digits for integers; max number of chars for from string */    int qualifier;      /* 'h', 'l', or 'L' for integer fields */    for (str = buf ; *fmt ; ++fmt) {        if (*fmt != '%') {            *str++ = *fmt;            continue;        }        /* process flags */        flags = 0;        repeat : ++fmt;      /* this also skips first '%' */


 

0 0