“\ N” или '\ n' или std :: endl to std :: cout? [Дубликат]

На этот вопрос уже есть ответ:

C ++: «std :: endl» против «\ n» 12 ответов

Прошло много лет с тех пор, как я перестал использоватьstd::endl заканчивать строки при записи вstd::cout, и начал использовать"\n" вместо.

Но теперь я начинаю видеть больше фрагментов кода, используя'\n' вместо этого я начал задумываться, что может быть лучше.

Помимо очевидного, что один является строкой, а другой символ, есть ли преимущество в использовании этого:

std::cout << variable << '\n';

Через это

std::cout << variable << "\n";

Позднее добавление:

Когда я задал этот вопрос, мне показалось, что это перевод строки'\n' очистил буфер. Теперь я знаю, что этозависи.

По умолчаниюstd::cin привязан к старому Сstdin FILE* поток иstd::cout привязан кstdout. Промывка на новой строке происходит от этой привязки. По умолчаниюstdout, если подключен к терминалу, является буферизованной строкой. Это означает, что новая строка очистит свои буферы. Таким образом, при печати новой строки, используяstd::cout, это приведет кstdout будучи покрасневшим.

Еслиstdout не подключен к терминалу (например, выход был перенаправлен или передан по трубопроводу), или если связь междуstd::cout а такжеstdout не работает, символы новой строки ничего не сбрасывают.

Ответы на вопрос(6)

Ваш ответ на вопрос