我应该在我的 C++ 程序中混合使用 C 和 C++ 风格 I/O 吗?

should I mix C & C++ style I/O in my C++ program?

这个问题让我很困惑。因为 C++ 是 C 的超集,所以程序员可以自由使用 C 的库函数,如 printf()、scanf() 和许多其他函数等。但我通常喜欢 C++ 的面向对象 I/O 系统,而且我最喜欢使用 cout & cin。因为 iostream 类型更安全、更不容易出错、可扩展、灵活且可继承。由于 iostream 的优势,我应该停止使用传统 C 的 I/O 函数,还是应该修改我的程序以使用?哪种方法更好?混合使用 C 和 C++ 时我应该注意什么地方 I/O。我知道与遗留 C 程序的向后兼容性是必要的,但我真的应该做什么?

C++ 和 C 流在默认情况下是同步的,因此您可以安全地混合使用它们。此行为由 std::ios_base::sync_with_stdio.

控制

至于你应该做吗?没关系。 C++ 没有通用的风格指南。有些程序员更喜欢 C++ iostreams 接口,有些更喜欢 C 的方法,有些则混合使用它们。

这里有一些链接比我能更好地讨论问题。

Should I switch to C++ I/O streams?

The Duct Tape Programmer - Joel Spolsky