久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 6206|回復(fù): 0
收起左側(cè)

自己寫一個(gè)C語言中的printf函數(shù)

[復(fù)制鏈接]
ID:90014 發(fā)表于 2015-9-14 18:49 | 顯示全部樓層 |閱讀模式
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include "stdarg.h"

  4. void PrintInt(unsigned int Num);//輸出正整數(shù)
  5. void PrintString(char *str);//輸出字符串
  6. void PrintInt_2(int Num);//輸出整數(shù)
  7. void PrintBit(int Bit);//輸出二進(jìn)制數(shù)
  8. void PrintFloat(float Num);//輸出浮點(diǎn)數(shù)
  9. void PrintFamt(const char *Format,...);//自己寫的printf
  10. int main()
  11. {
  12.     int x=12;
  13.     float y=12.5;
  14.     char *p="123";
  15.     PrintFamt("x=%d\ty=%f\t*p=%s\n",x,y,p);
  16.     return 0;
  17. }

  18. void PrintBit(int Bit)
  19. {
  20.     char bit;

  21.     for(bit=31;bit>=0;bit--)
  22.     {
  23.         if(Bit&(1<<31))
  24.             PrintChar('1');
  25.         else
  26.             PrintChar('0');

  27.         Bit<<=1;

  28.         PrintChar(' ');
  29.     }
  30. }

  31. void PrintChar(char ch)
  32. {
  33.     fprintf(stdout,"%c",ch);
  34. }


  35. void PrintString(char *str)
  36. {
  37.     while(*str)
  38.         PrintChar(*str++);
  39. }

  40. int Ex(char num)
  41. {
  42.     int Temp=1;

  43.     while(num--)
  44.     {
  45.         Temp*=10;
  46.     }

  47.     return Temp;
  48. }

  49. void PrintInt(unsigned int Num)
  50. {
  51.     unsigned char bit;

  52.     unsigned char number;

  53.     unsigned int Temp=Num;

  54.     unsigned char Length=0;

  55.     if(Num==0)
  56.     {
  57.         PrintChar('0');

  58.         return;
  59.     }

  60.     while(Temp)
  61.     {
  62.         Length++;

  63.         Temp/=10;
  64.     }

  65.     Temp=Num;

  66.     for(bit=0;bit<Length;bit++)
  67.     {
  68.         number=Temp/Ex(Length-bit-1);

  69.         PrintChar(number+'0');

  70.         Temp%=Ex(Length-bit-1);
  71.     }
  72. }


  73. void PrintInt_2(int Num)
  74. {
  75.     if(Num&(1<<31))
  76.     {
  77.         PrintChar('-');

  78.       //  Num=Num&(1<<31);

  79.         PrintInt(~(Num-1));
  80.     }
  81.     else
  82.     {
  83.         PrintInt(Num);
  84.     }
  85. }


  86. void PrintFloat(float Num)
  87. {
  88.     int Temp=(int)Num;

  89.     int fTemp=Ex(6)*(Num-(int)Num);

  90.     PrintInt_2(Temp);

  91.     PrintChar('.');
  92.     if(fTemp&(1<<31))
  93.         PrintInt_2(~(fTemp-1));
  94.     else
  95.     {
  96.         PrintInt_2(fTemp);
  97.     }
  98. }


  99. void PrintFamt(const char *Format,...)
  100. {
  101.     va_list ap;

  102.     va_start(ap,Format);

  103.     while(*Format)
  104.     {
  105.         switch(*Format)
  106.         {
  107.             case '%':{
  108.                 switch(*(Format+1))
  109.                 {
  110.                     case 'd':PrintInt_2(va_arg(ap,int));Format++;break;

  111.                     case 'f':PrintFloat(va_arg(ap,double));Format++;break;

  112.                     case 's':PrintString(va_arg(ap,char*));Format++;break;

  113.                     default:PrintChar('%');break;
  114.                 }
  115.             };break;

  116.             case '\n':PrintChar('\n');break;

  117.             case '\t':PrintChar('\t');break;

  118.             default :PrintChar(*Format);

  119.         }
  120.         Format++;
  121.     }
  122.     va_end(ap);
  123. }
復(fù)制代碼





回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲人成一区二区三区性色 | 一区二区三区四区国产 | 欧美日韩在线观看一区 | 久久手机在线视频 | 国产欧美精品 | 午夜伦4480yy私人影院 | 精品av | 黄网站涩免费蜜桃网站 | 成人高清在线视频 | 免费毛片网站 | 久久一区视频 | 久久精品久久久久久 | 亚洲色欲色欲www | 一区在线视频 | 狠狠综合久久av一区二区小说 | 欧美激情精品久久久久久 | www.99re| 欧美成人精品在线 | 日韩视频一级 | 播放一级毛片 | 97久久精品午夜一区二区 | 日韩精品一区二区三区中文字幕 | 欧美一区二区三区在线看 | jlzzjlzz国产精品久久 | 日韩伦理电影免费在线观看 | 国产乱码精品一区二区三区中文 | 天天操,夜夜爽 | 久久久久久久久91 | 亚洲最新网址 | 老司机狠狠爱 | 国产精品久久久久久久久久 | 九九导航 | 2018国产大陆天天弄 | 一区二区在线免费观看视频 | 成人在线观看黄 | 高清视频一区二区三区 | 午夜视频免费在线观看 | 成人亚洲视频 | 成人综合伊人 | h视频在线观看免费 | 久草免费在线视频 |