有没有一种在C++中创建类似Python的函数或宏的方法?
我的意思是像这样的函数:
print(i); // i is an integer.
print(i, s); // i is an integer, s is a std::string. They are separated by a white space.
一个函数接收若干个参数,然后无论这些参数的类型是什么,都会将它们打印出来。
std::cout << i << s << std::endl
可以翻译为:输出整数变量 i 和字符串变量 s,并换行。 - sevsev<<
在一开始也似乎很合理,但我的经验是这两种方法很快就会失败:试图精确控制格式非常困难和冗长。我已经爱上了老式的C风格的printf()
,尽管我学会使用C++流之后很久才这样做。现在我只使用printf()
,因为它能让我对字符串的显示方式进行精确而简洁的控制。 - cmaster - reinstate monicaostream
的开销会成为性能瓶颈。是的,我也在许多情况下更喜欢使用printf
。我更喜欢使用C++的东西来从标准输入读取数据,而使用C的东西来进行标准输出。 - Bathshebaprintf
非常相似,但具有类型安全性和可扩展性。 - Aykhan Hagverdilim
修饰符确实是 POSIX 标准的一部分。我把它和旧的a
修饰符搞混了,后者是一个不太理想的 GNU 扩展。感谢你的纠正。 - cmaster - reinstate monica