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 呢?谢谢。
而不是scanf
你想要的vscanf
:
va_list args;
va_start(args, format);
vscanf(format, args);
va_end(args);
当您使用带有可变参数列表的函数时,您有时会偶然发现需要传递这些可变参数。所以在你的例子中你知道你想做什么,你想“将'...'传递给scanf”。这正是vscanf
, vprintf
etc 函数的用途:它们接受 '...' 的形式va_list
。