<pre name="code" class="html">#include "stdafx.h"
#include <stdio.h>
#include "ZRprintf.h"
void Printf(const char *pFormate,...)
{
char *pTemp =(char*)&pFormate;
pTemp+=4;
while(*pFormate)
{
if( '%' != *pFormate)
{
putchar(*pFormate);
pFormate++;
}
if( '%' == *pFormate)
{
pFormate++;
switch(*pFormate)
{
case 'c':
case 'C':
{
putchar(*pTemp);
pTemp+=4;
pFormate++;
}
break;
case 's':
case 'S':
{
char *pChar = *(char**)pTemp;
for( int i =0 ;'\0' != pChar[i];i++)
{
putchar(pChar[i]);
}
pTemp+=4;
pFormate++;
}
break;
case 'd':
case 'D':
{
char szBuf[256] = "";
Itoa(*(int*)pTemp,szBuf);
for(int i =0 ;'\0' != szBuf[i];i++)
{
putchar(szBuf[i]);
}
pTemp+=4;
pFormate++;
}
break;
}
}
}
}
void Itoa(int nNum,char *pStr)
{
int nTemp = nNum;
int count = 0;
if( nNum < 0)
{
nTemp = -nNum;
while( nTemp > 0)
{
nTemp = nTemp/10;
count++;
}
nNum = -nNum;
for(int i = count; i >0 ;i--)
{
pStr[i] = nNum%10 + '0';
nNum = nNum/10;
}
pStr[count+1] = '\0';
pStr[0] = '-';
}
else if( nNum > 0)
{
while( nTemp > 0)
{
nTemp = nTemp/10;
count++;
}
for(int i = count-1; i >= 0; i--)
{
pStr[i] = nNum%10 +'0';
nNum = nNum/10;
}
pStr[count] = '\0';
}
else
{
pStr[0] = '0';
}
}
自编printf 函数
最新推荐文章于 2024-02-25 16:41:22 发布