И endl
, и n
служат одной и той же цели в C ++ — они вставляют новую строку. Однако ключевое различие между ними заключается в том, что endl
вызывает очистку выходного буфера при каждом вызове, тогда как n
этого не делает.
Все, что должно быть выведено, сначала помещается в очередь в выходной буфер, а затем записывается на устройство (жесткий диск, монитор и т. д.), очищая очередь в процессе.
Давайте разберемся с этим на примере, где нам нужно будет вывести на экран 26 букв английского алфавита:
#include using namespace std; int main () {for (char i = 'A'; i
Здесь буфер вывода сбрасывается каждый раз, когда код выполняет строку 7 . Следовательно, буфер очищается 26 раз (один раз после печати каждой буквы).
Использование n
приведет к заполнению буфера вывода всеми 26 символами first и промойте его только один раз в конце программы:
#include с использованием пространства имен std; int main () {for (char i = 'A'; я
Хотя разница не очевидна в небольших программах endl
работает значительно хуже, чем n
из-за постоянной очистки выходного буфера.