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


目录
相关文章
|
2月前
|
存储 C语言
`scanf`是C语言中用于按格式读取标准输入的函数
`scanf`是C语言中用于按格式读取标准输入的函数,通过格式字符串解析输入并存入指定变量。需注意输入格式严格匹配,并建议检查返回值以确保读取成功,提升程序健壮性。
984 0
|
存储 C语言
C语言数据类型、变量和运算符以及printf相关问题
C语言数据类型、变量和运算符以及printf相关问题
|
存储 缓存 编译器
C语言第四弹---printf和scanf详解
C语言第四弹---printf和scanf详解
|
存储 C语言 数据格式
【C语言基础考研向】03混合运算和printf讲解
本文分为两部分。第一部分介绍了C语言中的混合运算与类型强制转换的重要性,通过实例展示了当整型数进行除法运算且结果为小数时,必须使用类型转换才能正确存储浮点数结果。第二部分详细讲解了`printf`函数的功能与使用方法,包括格式化输出不同类型数据的基本语法,并通过具体示例演示了如何利用字段宽度和对齐方式来控制输出格式,帮助读者更好地理解和掌握输出格式的控制技巧。
227 10
|
C语言
C语言程序设计核心详解 第三章:顺序结构,printf(),scanf()详解
本章介绍顺序结构的基本框架及C语言的标准输入输出。程序从`main()`开始依次执行,框架包括输入、计算和输出三部分。重点讲解了`printf()`与`scanf()`函数:`printf()`用于格式化输出,支持多种占位符;`scanf()`用于格式化输入,需注意普通字符与占位符的区别。此外还介绍了`putchar()`和`getchar()`函数,分别用于输出和接收单个字符。
200 5
|
C语言
初识C语言:与计算机的交流之输入与输出(scanf和printf)
初识C语言:与计算机的交流之输入与输出(scanf和printf)
594 0
|
存储 缓存 编译器
【C语言篇】scanf和printf万字超详细介绍(基本加拓展用法)(下篇)
scanf处理⽤⼾输⼊的原理是,⽤⼾的输⼊先放⼊缓存,等到按下回⻋键后,按照占位符对缓存进⾏解读。 解读⽤⼾输⼊时,会从上⼀次解读遗留的第⼀个字符开始,直到读完缓存,或者遇到第⼀个不符合条件的字符为⽌。
527 2
|
存储 C语言
【C语言篇】scanf和printf万字超详细介绍(基本加拓展用法)(上篇)
printf 的作⽤是将参数⽂本输出到屏幕。它名字⾥⾯的 f 代表 format (格式化),表⽰可以定制输出⽂本的格式。
292 1
|
C语言
C语言5 字符输出函数和格式输出函数
C语言5 字符输出函数和格式输出函数
344 1
|
存储 C语言
C语言6 字符串输入和格式输入函数
C语言6 字符串输入和格式输入函数
252 0