我怎么能在函数中使用scanf?

时间:2013-03-26 07:33:04

标签: c scanf

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? 感谢。

1 个答案:

答案 0 :(得分:6)

而不是您想要的scanf vscanf

va_list args;
va_start(args, format);
vscanf(format, args);
va_end(args);

当您使用带有可变参数列表的函数时,您有时会发现需要传递这些变量参数。所以在你的例子中你知道你想做什么,你想“将'...'传递给scanf”。这正是vscanfvprintf等函数的用途:它们以va_list的形式接受“...”。