中易网

C语言如何在可变参数函数中使用printf?

答案:3  悬赏:10  
解决时间 2021-03-05 21:08
我要将printf外面再包上一层:
void fun(const char* fmt,...)
{
........
printf(fmt,...);
........
}
这种函数怎么写?
最佳答案
如@psxf91所答,应使用v*系列的函数来实现。对比下printf与vprintf函数原型:
void printf(const char *format, ...);
void vprintf(const char *format, va_list ap);可以看出二者的差别。vprintf才接收va_list类型,printf接收的是不定参数。
因此,要实现你的要求代码如下:
#include "stdarg.h"

void fun(const char *fmt, ...){
    va_list ap;
    va_start(ap, fmt);
    // ...
    vprintf(fmt, ap);
    // ...
    va_end(ap);
}
全部回答
我记得有个函数叫vprintf, 用stdarg.h的宏把va_list拿到 然后传进去,即可。
你可以用字符指针作为函数的参数,自己在函数里面设计一个格式去读这个指针指向的一串字符。 比如printf ,scanf 函数就是这样的。函数参数就有字符指针。 例如printf("the data is %d",x); 字符串"the data is %d"的首地址给了字符指针。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
当与父母发生冲突时,如果主动沟通 要用什么
Li Bingbing is an wxcellent actress.She (a
一年级下课后老师让雨衣作文
fix it up是什么意思
JAVA工程师需要学习哪些基础课程
去4S店做司机要穿制服..是西装么...
罗斯蒙特测温元件pt100价格和货期,谢谢
怎样自制150角磨机防尘器
一个人做什么饭吃好点?
包头那有买蛋筒望远镜的
我是大一的,想去川美读动漫专业,有自学画画
有没有必要在孩子面前掩饰爸爸是个渣男的现象
梦幻西游历届服战冠军
今天感冒,去体检抽血,会有影响吗
六合华夏人寿保险,应聘主管能干吗?
推荐资讯
见笑了,什么意思
麦迪和奥尼尔做过队友吗
山东体彩11选5是摇号还是电脑程序
11岁小孩算儿童还是算青少年?
出自何处君知妾有夫,赠妾双明珠。感君缠绵意
连续在环卫所工作十年之久的临时清洁工,以后
谁能推荐一款洗眉水 可以洗掉纹绣的眉毛 而且
东北话家虎事儿啥意思
成语接龙快速查询四面八方
前男友是个人渣男,出尔反尔,骂那么难听怎么
S303/昭待高速公路(路口)怎么去啊,有知道地
excel基础知识点是什么?
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?