#include <stdio.h>
#include <stdarg.h>
void my_printf(const char* fmt, ...) {
va_list args;
va_start(args, fmt);
while (*fmt != '\0') {
if (*fmt == 'd') {
int i = va_arg(args, int);
printf(" %4d", i);
} else if (*fmt == 'c') {
int ch = va_arg(args, int);
printf(" %3c", ch);
} else if (*fmt == 'f') {
double f = va_arg(args, double);
printf(" %.6f", f);
}
fmt++;
}
printf("\n");
va_end(args);
}
int main(void)
{
my_printf("dcf", 100, 'x', 3.14);
my_printf("cff", 'x', 3.14, 4.872);
}
/*
run:
100 x 3.140000
x 3.140000 4.872000
*/