std::endl
在 C++ 中主要有以下两个作用:
- 换行:它会向输出流中插入一个换行符,将后续的输出内容移动到下一行。例如在以下代码中,
std::endl
使得"World"
输出在下一行。 - 刷新输出缓冲区:
std::endl
会强制刷新与输出流相关的缓冲区。这意味着缓冲区中尚未输出的数据会立即被发送到目标设备(如显示器)。在一些情况下,输出可能会被缓冲以提高效率,如果不及时刷新,可能导致输出不及时显示。例如,在一个循环中频繁输出数据时,使用std::endl
可以确保每次输出后都能及时看到结果。 -
在上述代码中,如果不使用
std::endl
,而是使用'\n'
换行,那么输出可能会被缓冲,直到缓冲区满或者程序结束时才会显示。而使用std::endl
可以保证每次输出后立即刷新缓冲区,使输出及时显示在屏幕上。不过,由于
std::endl
会刷新缓冲区,频繁使用可能会影响程序的性能。如果只是单纯需要换行,可以考虑使用'\n'
,它只进行换行操作,不会刷新缓冲区。