C语言 怎么调用一个可变参数的函数
3个回答
2011-10-11
展开全部
你是指参数的个数可以变化? 比如文件操作函数fpritnf,它的参数是不确定的,可以是fprintf("%s%s","你好","他好");也可以是fprintf("%s%d%c","字符串",10086,'c'); 如果自己写一个参数变化的函数的话,呵呵,我没试过。
追问
void foo(char *fmt,...)
{
char *p=fmt;
va_list arg_ptr;
int i,j,k;
va_start(arg_ptr,fmt);
i=va_arg(arg_ptr,int);
j=va_arg(arg_ptr,int);
k=va_arg(arg_ptr,int);
va_end(arg_ptr);
printf(fmt,i,j,k);
}
int main(void)
{
int n=321;
foo("%d %d %d\n",n+1,n+2,n+4);
getchar();
return 0;
}现在是n+1,n+2,n+4是未知的,需要从键盘输入需要的内容,该怎么办?
追答
用标准输入输出函数scanf输入n的值啊,再调用你的foo函数。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
看你的样子,你应该是没有包含头文件 stdarg.h
包含之后,就像一般的调用函数就得了
包含之后,就像一般的调用函数就得了
更多追问追答
追问
我包含了,我现在的问题是不知道怎么调用,关键是调用的时候,函数参数中的...是用户从键盘随机输入的多个字符串,这时该怎么调用?麻烦看哈我对另一个人的追问
追答
你想用一个可变参数的函数来获得一堆字符串?
而且,字符串的个数是未知的,调用那个函数就能把那些未知个数的字符串全都保存下来?
你是不是要这样的效果
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
C语言没有可变参数的函数吧?
追问
有啊,比如:
void PrintFError (char * format, ...)
{
char buffer[256];
va_list args;
va_start (args, format);
vsprintf (buffer,format, args);
perror (buffer);
va_end (args);
}
我现在想在主函数里面调用它,该怎么调用?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询