我想知道如何才能做到这一点。我对N论点部分感到困惑:
printf("Hello, I'm %i years old and my mom is %i .",me.age(),mom.age());
我想创建一个函数,它将采用这样的格式化字符串并返回一个std字符串。
如何完成N个参数?
答案 0 :(得分:10)
printf
是一个可变函数;您可以使用<stdarg.h>
提供的工具实现自己的可变参数函数。
在C ++中,应尽可能避免使用可变参数函数。它们可以作为参数接受的类型非常有限,并且它们不是类型安全的。 C ++ 0x为C ++添加了可变参数模板;一旦对此功能的支持很普遍,您将能够编写类型安全的可变参数函数。
与此同时,最好使用其他类型的安全方法。例如,Boost.Format会重载%
运算符以执行格式化。