gpt4 book ai didi

c - 修改printf

转载 作者:行者123 更新时间:2023-11-30 14:24:36 27 4
gpt4 key购买 nike

我要修改函数printf到一个新功能printf2它只是在要打印的消息前面加上 Hello .

我可以做到

void printf2(char message[]) {
printf("Hello ");
printf(message);
}

问题是我无法在 message 的情况下传递额外的参数有%d , %c

我怎样才能有printf2接受尽可能多的参数 printf可以,并转发至printf

最佳答案

上面的评论为您指明了正确的方向,但这里是如何添加标签的示例(Hello)。

注释:我已使用 sn 版本的 printf 来格式化不应溢出临时缓冲区的新字符串,并且 *MAX_MSG_SIZE* 为假设在其他地方适当定义。

void printf2(const char *format, ...)
{

char buffer[MAX_MSG_SIZE] = "";


va_list args;


va_start(args,format);
vsnprintf(buffer, MAX_MSG_SIZE, format, args);
va_end(args);

printf("Hello: %s\n", buffer);
}

关于c - 修改printf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11564187/

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