简易版的printf函数实现
功能说明
(1)使用putchar
函数、va可变参
完成printf函数基本功能的实现;
(2)函数说明:
实现对下列数据类型的输出,并返回成功输出打印的字符个数:
- 整数(正负)的输出;
- 字符串输出;
- 浮点数(float、double)输出;
- 字符输出;
函数实现
#include <stdio.h>
#include <stdarg.h>
#include <limits.h>
#include <inttypes.h>
int myprintf(const char *format, ...) {
va_list args;
va_start(args, format);
int char_count = 0; // 记录写入的字符数量
while (*format) {
if (*format == '%') {
format++;
switch (*format) {
case 'c': {
char c = va_arg(args, int);
putchar(c);
char_count++;
break;
}
case 'd': {
int d = va_arg(args, int);
if (d == INT32_MIN) {
putchar('-');
putchar('2');
d = 147483648;
char_count += 2;
} else if (d < 0) {
putchar('-');
d = -d;
char_count++;
}
int divisor = 1;
while (d / divisor >= 10)
divisor *= 10;
while (divisor