C语言实现printf的基本格式输出%d,%c,%p,%s

简介:

关于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 ; 
}
运行结果:


目录
相关文章
|
1月前
13.C语言:用printf函数输出数据
13.C语言:用printf函数输出数据
24 0
|
4月前
|
存储 C语言
C 语言教程:数据类型和格式说明符
C 中的变量必须是指定的数据类型,并且您必须在 printf() 函数中使用格式说明符来显示它:
94 2
|
12天前
|
存储 程序员 编译器
【C语言第二回】main、printf和库函数
【C语言第二回】main、printf和库函数
|
1月前
|
存储 编译器 C语言
C语言巧用联合体union判定数据的存储格式(大小端)
C语言巧用联合体union判定数据的存储格式(大小端)
11 1
|
1月前
|
C语言
C语言中printf函数输出数据
C语言中printf函数输出数据
16 0
|
1月前
|
存储 C语言
C语言用printf函数输出数据
C语言用printf函数输出数据
6 0
|
2月前
|
C语言 C++
C语言变量、地址、字符及printf()/sizeof()/scanf()函数介绍
C语言变量、地址、字符及printf()/sizeof()/scanf()函数介绍
10 0
|
8月前
|
C语言
用c语言输出有颜色的字体 printf输出 控制台程序修改文本位置 设置控制台程序窗口标题
用c语言输出有颜色的字体 printf输出 控制台程序修改文本位置 设置控制台程序窗口标题
|
4月前
|
C语言
C语言的printf的介绍
C语言的printf的介绍
|
4月前
|
C语言 C++
C语言第4弹-printf函数、scanf函数介绍
C语言第4弹-printf函数、scanf函数介绍