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));' –