Chinaunix首页 | 论坛 | 博客
  • 博客访问: 980008
  • 博文数量: 184
  • 博客积分: 10030
  • 博客等级: 上将
  • 技术积分: 1532
  • 用 户 组: 普通用户
  • 注册时间: 2005-12-27 18:32
文章分类

全部博文(184)

文章存档

2009年(1)

2008年(63)

2007年(39)

2006年(79)

2005年(2)

我的朋友

分类: C/C++

2008-05-12 16:48:29

#include
#include
void minprintf(char *fmt, ...)
{
    va_list ap;
    int ival;
    char *p,*sval;
    double dval;
   
    va_start(ap, fmt);
    for (p = fmt; *p; ++p)
    {
        if (*p != '%')
            {
                putchar (*p);
                continue;
            }
            switch (*++p)
            {
                case 'd':
                    ival = va_arg(ap, int);
                    fprintf (stdout, "%d\t", ival);
                    break;
                case 'f':
                        dval = va_arg(ap, double);
                        fprintf (stdout, "%f\t", dval);
                        break;
                case 's':
                    for (sval = va_arg(ap, char *); *sval; ++sval)
                        putchar (*sval);
                putchar ('\t');
                break;
                default:
                    putchar (*p);
                    break;
            }
    }   
    va_end(ap);
}
int main()
{
    int i = 10;
    double d = 3.1415;
    char s[] = "Hello, World!";
    minprintf ("%d\n", i);
    minprintf ("%d\n", d);
    minprintf ("%s\n", s);
    return 0;
}
阅读(944) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~