c++ - 如何将从省略号运算符获得的参数传递给其他函数?

标签 c++ printf ellipsis

<分区>

void myPrintf(const char* format, ...) {
    // some code
    va_list vl;
    printf(format, vl);
}

int main() {
    myPrintf("%d\n", 78);
}

在这段代码中,我尝试将参数从省略号传递给 printf。它编译但打印垃圾而不是 78。正确的方法是什么?

最佳答案

您需要执行以下操作:

void myPrintf(const char *format, ...) {
    va_list vl;
    va_start(vl, format);
    vprintf(format, vl);
    va_end(vl);
}

请注意使用 vprintf 而不是 printf

关于c++ - 如何将从省略号运算符获得的参数传递给其他函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18715895/

相关文章:

c++ - 防止反向工程 C++ 二进制文件

c - sprintf 是做什么的? (是 : FPS Calculation in OpenGL)

c - 使用 printf() 的格式说明符 "%*.*s"绘制菱形

html - 两个动态大小并排的容器,左侧容器带有省略号

Flutter 文本在列表中未被省略

Python:当我的模块返回 "Ellipsis"时,这意味着什么?

c++ - 在 C++ 中创建字符串 HashMap 到字符串 vector 的最佳方法是什么?

c++ - 无法从文本文件中提取某些记录

c++ - 文本输出发送到文件并稍后在程序中使用。如何使用缓冲区代替?

c - 末尾显示随机字符的数组