0
我的打印功能使用va_arg函數打印隨機字符。我無法弄清楚爲什麼它不起作用。提前謝謝你的幫助!va_arg打印隨機字符
#include <stdio.h>
#include <stdarg.h>
#include <string.h>
int myprint(const char *str, ...) {
va_list args;
int counter = 0;
va_start (args, str);
while (*str) {
if (*str == '&') {
fputc(va_arg(args, int), stdout);
counter++;
} else {
fputc(*str, stdout);
}
str++;
}
va_end(args);
fputc('\0', stdout);
return counter;
}
int main(void)
{
myprint("Hello!\n");
myprint("Number: &\n", 5);
myprint("Number one: &, number two: &\n", 120, 1345);
int ret = myprint("Three numbers: & & &\n", 12, 444, 5555);
myprint("I just printed & integers\n", ret);
return 0;
}
你爲什麼認爲'fputc'會打印整數? –
那麼如何將整數轉換爲文本? – Coldcode
您需要使用'fprintf(stdout,「%d」,va_arg(args,int));' –