gpt4 book ai didi

c - va_arg 打印随机字符

转载 作者:行者123 更新时间:2023-11-30 16:42:57 24 4
gpt4 key购买 nike

我的打印函数使用 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 接受一个 int,但打印一个 int 参数值为 ASCII 的字符。代码。只需将 int 转换为 char

因此使用fputc来打印int是行不通的,你可以这样写

fputc(va_arg(args, int) + '0', stdout);

但简单地使用相关函数会更容易,例如 printf(),因此每个人都可以轻松阅读它

printf("%d", va_arg(args, int));

希望您现在了解问题。

关于c - va_arg 打印随机字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45626996/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com