如何在另一个函数中嵌套fprintf

时间:2014-12-09 17:01:25

标签: c printf variadic-functions

我想写一个类似

的函数
void put(const char *label, const char *format, ...)
{
    /* There is a file f open for writing */
    fprintf(f, "%s:\n", label);
    fprintf(f, format);
}

......并使用类似的东西:

put("My Label: ", "A format with number in it %i", 3);

我试图这样做,但我的文件中有16711172而不是3

1 个答案:

答案 0 :(得分:2)

请尝试以下代码:

#include<stdio.h>
#include <stdarg.h>

void put(const char *label, const char *format, ...)
{
    va_list         arg_ptr;

    va_start(arg_ptr, format);
    /* There is a file f open for writing */
    fprintf(stdout, "%s: ", label);
    vfprintf(stdout, format, arg_ptr);
    va_end(arg_ptr);
}

int main() {
    put("LAB", "%d\n", 5);
}