void printLine(const wchar_t* str, ...)
{
  // have to do something to make it work
  wchar_t buffer[2048];
  _snwprintf(buffer, 2047, ????);
  // work with buffer
}

printLine(L"%d", 123);

我试过了
  va_list vl;
  va_start(vl,str);

和类似的事情,但我没有找到解决方案。

最佳答案

这是一个执行此操作的简单C代码,您必须包括stdarg.h才能使它起作用。

void panic(const char * fmt,...){
char buf [50];

va_list argptr;/*在此处设置变量参数列表*/

va_start(argptr,fmt);/*启动变量参数*/

vsprintf(buf,fmt,argptr);/*将变量参数打印到缓冲区*/

va_end(argptr);/*表示变量参数处理的结束*/

fprintf(stderr,buf);/*将消息打印到stderr */

退出(-1);
}

典型的调用是

panic(“找不到文件%s\n”,文件名);/*假设file_name是“foobar” */
/*输出为:

找不到文件foobar

*/

希望这可以帮助,
此致,
汤姆

关于c++ - 是否可以直接传递C省略号调用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2177209/

10-11 05:52