C语言实现printf的基本格式输出%d,%c,%p,%s
2016-02-25 22:02
453 查看
关于printf的实现,想必看过我之前发表的文章的伙伴们已经了解了不少基本的知识。好了,接下来不多说了,直接上源码,看看一种简单的实现方式:
#include <stdio.h> #define myfflush(out) do {} while (0) typedef int uint32_t; //输出十进制数 static void print_Dec (uint32_t n) { if (n >= 10) { //递归调用 print_Dec(n / 10); n %= 10; } putchar((char)(n + '0')); } //输出十六进制数 static void print_Hex(unsigned int hex) { int i = 8; putchar('0'); putchar('x'); while (i--) { unsigned char c = (hex & 0xF0000000) >> 28; putchar(c < 0xa ? c + '0' : c - 0xa + 'a'); hex <<= 4; } } //输出字符串 void print_String(const char *s) { while (*s) { putchar(*s); s++; } } //输出字符 void print_char(char ch) { putchar(ch); } typedef unsigned long volatile ulv ; typedef unsigned long ul ; int main(void) { //输出10进制数 print_Dec(10); putchar('\n'); //输出16进制数 print_Hex(0xa); putchar('\n'); //输出字符串 print_String("hello world"); myfflush(stdout); return 0 ; }运行结果:
相关文章推荐
- C++ const用法 尽可能使用const
- 一起talk C栗子吧(第一百二十三回:C语言实例--显示变量和函数的地址)
- c++11中的日期和时间库
- 矩阵的转置 C语言
- C++学习笔记(1)
- 20160212.CCPP体系详解(0022天)
- C语言 字符串转化为数字
- C语言字符串处理函数
- Cpp_动态内存分配
- 二值图像统计连通区域C语言版
- 1052. Linked List Sorting (25)
- Cpp_内联函数
- Cpp_函数缺省参数
- Cpp_函数重载
- C++11中的线程简介
- C语言静态函数静态变量
- new与malloc的区别
- C++注意点(第二部分)
- HDU5631并查集检验图连通
- C语言实现链表节点的插入