为什么 printf 在 C++ 中执行得比 cout 快?而且 scanf 比 cin 慢,为什么?

-1 c++

我制作了一些程序,发现 scanf 和 printf 比使用 cin 和 cout 快得多?

Pra*_*ary 6

默认情况下,cin/cout 浪费时间与 C 库的 stdio 缓冲区同步,因此您可以自由地将 scanf/printf 调用与 cin/cout 上的操作混合在一起。

关闭此功能

std::ios_base::sync_with_stdio(false); 还有许多 C++ 教程告诉您编写cout << endl而不是cout << '\n'. 但endl实际上更慢,因为它强制刷新,这通常是不必要的。(如果您正在编写交互式进度条,则需要刷新,但在编写一百万行数据时则不需要。) Write'\n'而不是endl.

同样由于 C++ 是面向对象的,cin并且cout是对象,因此由于对象绑定而增加了总时间。

所以,一个简单的一个班轮,std::ios_base::sync_with_stdio(false);可以cin/coutprintf/scanf.

希望这对你有帮助