写一个自己的printf
时间: 2023-05-21 11:01:42 浏览: 117
ComTest,c语言printf源码,c语言程序
函数,实现输出任意类型的数据。
好的,这是一个很好的问题。下面是一个简单的实现:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void my_printf(const char *format, ...) {
va_list args;
va_start(args, format);
for (int i = 0; format[i] != '\0'; i++) {
if (format[i] == '%') {
i++;
switch (format[i]) {
case 'd':
printf("%d", va_arg(args, int));
break;
case 'f':
printf("%f", va_arg(args, double));
break;
case 's':
printf("%s", va_arg(args, char *));
break;
default:
printf("Invalid format specifier");
exit(1);
}
} else {
printf("%c", format[i]);
}
}
va_end(args);
}
int main() {
int a = 10;
double b = 3.14;
char c[] = "Hello, world!";
my_printf("a = %d, b = %f, c = %s\n", a, b, c);
return 0;
}
```
这个函数可以输出整数、浮点数和字符串类型的数据。在函数中,我们使用了可变参数列表来实现输出任意类型的数据。
阅读全文