帶有可變參數表的簡化的printf函數

好程序員訓練營

<A href="http://www.goodprogrammer.org/" target="blank">ios培訓</A>

------我的c語言筆記,期待與您交流! 


#include<stdio.h>

#include<stdarg.h>


/*minprintf函數:帶有可變參數表的簡化的printf函數*/

void minprintf(char *fmt,...)

{

    va_list ap;

    char *p,*sval;

    int ival;

    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);

               printf("%d",ival);

               break;

           case 'f':

               dval=va_arg(ap,double);

               printf("%f",dval);

               break;

           case 's':

               for(sval=va_arg(ap,char *);*sval;sval++)

               putchar(*sval);

               break;

           default:

               putchar(*p);

               break;

        }

    }

    va_end(ap);

}


int main()

{   

    int aa=2;

    float bb=3.0;

    char *pp="abcd";

    minprintf("%d\n%f\n%s\n",aa,bb,pp);

    return 0;

}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章