我有这个函数需要多个char参数。如何打印它们并在每个char的末尾添加一个'\ n'?
void printAndSave(char* msg,...)
{
//printing single one.
//printf("Log:%s\n",msg);
//saveToLog(msg);
//how to print all of them?
}
答案 0 :(得分:2)
我认为您需要更改printAndSave()
的签名以指定传递的char*
个参数的数量。例如:
void printAndSave(const unsigned int arg_count, ...)
{
unsigned int i;
char* val;
va_list vl;
va_start(vl,arg_count);
for (i=0;i<arg_count;i++)
{
val=va_arg(vl,char*);
printf ("%s\n",val);
}
va_end(vl);
}
答案 1 :(得分:1)
查看此page末尾的示例。你应该很容易适应你的问题;)请注意你必须知道它们的类型。