——菜根谭
读者:怎样写类似 printf() 的函数, 再把参数转传给 printf() 去完成大部分工作?
小林:用 vprintf(), vfprintf() 或 vsprintf()。...下面是一个 error() 函数, 它列印一个出错信息, 在信息前加入字符串 “error: ”和在信息后加入换行符:
#include
#include
void..., "error: ");
va_start(argp, fmt);
vfprintf(stderr, fmt, argp);
va_end(argp);
fprintf(stderr, "\n"...类 printf 函数从格式字符串中的格式说明符来确定参数个数, 就象 %d 这样的格式说明符。所以如果格式字符串和参数数目不符时, 此类函数会出错的很厉害。