0
我遇到問題。我嘗試自定義printf()
,但是當我編譯這段代碼時,輸出似乎沒有如預期那樣。如何編寫自定義printf?
#include <stdio.h>
#include <stdarg.h>
void print(char *, ...);
int main()
{
char str[12]="World";
char c='A';
int i=100;
print("Hello %s %c", str, c);
}
void print(char *c, ...)
{
char *s;
va_list lst;
va_start(lst, c);
while(*c!='\0')
{
if(*c!='%')
{
putchar(*c);
c++;
continue;
}
c++;
switch(*c)
{
case 's': fputs(va_arg(lst, char *), stdout); break;
case 'c': putchar(va_arg(lst, int)); break;
}
}
}
輸出,這似乎來了信息:Hello World 輸出:你好世界交流 我想不通爲什麼 'S,C' 出現。