2 c++ printf coding-style cout
搜索网站"printf vs cout"后,讨论了两者之间的差异,但这不是我想要的.来自Python,我是printf使用字符串格式的方式的忠实粉丝,cout如果可能的话,我宁愿避免.
被忽视cout和printf专门使用被认为是不好的做法吗?这样做有什么意义?在哪些情况下使用printf不是一种选择?
1)您只可以使用printf的基本类型,并为整数真的是只可用于"本地"类型的int,long int等等喜欢的东西uint32_t需要便携式打印颇为尴尬和麻烦宏.根本不支持用户定义的类型.
2)printf不是类型安全的.也就是说,代码的正确性取决于格式化字符串的值,并且无法判断程序是否仅通过静态分析很好地形成.这是C类型系统的根本弱点,"适当的"C++避免了这种弱点.
也就是说,printf(或者更(v)snprintf确切地说)通常比iostream快一点,因此在高性能环境(例如高频测井)中,它是一种非常有竞争力的替代方案.但是,如果你只是偶尔输出操作,你应该更喜欢iostreams,或者其他一些灵活的,类型安全的惯用C++方法.(诚然,iostream可能是C++中最可怕的角落之一.)