void mscanf(char *format, ...)
{
scanf(format);
}
int main()
{
int n1, n2;
mscanf("%d%d", &n1, &n2);
printf("%d,%d\n", n1, n2);
return 0;
}
这有什么不对。? 我怎么能在这样的函数中使用scanf? 感谢。
答案 0 :(得分:6)
而不是您想要的scanf
vscanf
:
va_list args;
va_start(args, format);
vscanf(format, args);
va_end(args);
当您使用带有可变参数列表的函数时,您有时会发现需要传递这些变量参数。所以在你的例子中你知道你想做什么,你想“将'...'传递给scanf”。这正是vscanf
,vprintf
等函数的用途:它们以va_list
的形式接受“...”。