Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.82
ramybozy
8 / 8 / 0
Регистрация: 01.07.2012
Сообщений: 138
#1

Символ '\n' и манипулятор endl - C++

22.12.2012, 16:10. Просмотров 2738. Ответов 21
Метки нет (Все метки)

Встретил в одной книге вот такое выражение (дословно):

Если операционная система не использует буферизацию вывода, то между символом новой строки '\n' и манипулятором endl нет никакой разницы.

Хотелось бы узнать, а нынешняя Windows использует буферизацию или нет?
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.12.2012, 16:10
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Символ '\n' и манипулятор endl (C++):

Какого типа std::endl ? Как сделать так, чтобы функция могла принимать endl в качестве аргумента? - C++
Что надо указать в прототипе функции, чтобы можно передавать std::endl в качестве аргумента? Уже 3 часа голову ломаю! :wall: Помогите,...

endl - C++
Объясните пожалуйста зачем вставлять эту функцию после выводимого потока например: cout<<....<<endl; Зачем она нужна и что...

endl - C++
#include <iostream> int main() { using std::cout; using std::endl; unsigned short int Width = 5, Length; Length =...

Манипулятор ws - C++
Собственно вопрос в следующем: может ли кто-то показать, как использовать манипулятор ws. Он, если я правильно понял, должен пробелы...

Определить манипулятор - C++
Что-то часто я тут начал писать... Но тем не менее... Задание определить манипулятор, который игнорирует все запятые и точки до конца...

Собственный манипулятор - C++
Здорова господа! Я пытаюсь создать свой собственный манипулятор, который будет принимать основу числа: десять шестнадцать и два и само...

21
Croessmah
Ушел
Эксперт CЭксперт С++
13553 / 7704 / 872
Регистрация: 27.09.2012
Сообщений: 19,006
Записей в блоге: 3
Завершенные тесты: 1
22.12.2012, 17:00 #16
Цитата Сообщение от Schizorb Посмотреть сообщение
А в какой момент буфер будет сброшен, если не использовать endl?
Например, когда он заполнится.
Цитата Сообщение от Schizorb Посмотреть сообщение
Почему это не делается до вызова функции?
Каким образом это сделается, если никто не сбрасывает буфер?
1
Schizorb
510 / 462 / 16
Регистрация: 07.04.2012
Сообщений: 865
Записей в блоге: 1
Завершенные тесты: 1
22.12.2012, 17:19 #17
Цитата Сообщение от Croessmah Посмотреть сообщение
Каким образом это сделается, если никто не сбрасывает буфер?
Ага, понял, само никак не сделается. Скажем, file.close(); спасло бы в этой ситуации.
0
Croessmah
22.12.2012, 17:21
  #18

Не по теме:

Цитата Сообщение от Schizorb Посмотреть сообщение
Скажем, file.close(); спасло бы в этой ситуации.
А если дальше с файлом необходимо работать?

0
MrGluck
Модератор
Эксперт CЭксперт С++
7491 / 4606 / 692
Регистрация: 29.11.2010
Сообщений: 12,592
22.12.2012, 17:24 #19
Цитата Сообщение от Schizorb Посмотреть сообщение
Ага, понял, само никак не сделается. Скажем, file.close(); спасло бы в этой ситуации.
std::flush() спасло бы
1
diagon
Higher
1930 / 1196 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
22.12.2012, 17:26 #20
Цитата Сообщение от Schizorb Посмотреть сообщение
А в какой момент буфер будет сброшен, если не использовать endl?
Там своя атмосфера. Явно не в деструкторах, ведь буфер будет сброшен даже при abort().
Более того.
C++
1
2
3
4
5
6
7
#include <iostream>
 
int main()
{
   std::cout << "ololo" << '\n';
   for (;;);
}
gcc тут выводит текст и уходит в бесконечный цикл.
1
ramybozy
8 / 8 / 0
Регистрация: 01.07.2012
Сообщений: 138
22.12.2012, 17:27  [ТС] #21
Честно говоря, у меня пока возникло ощущение, что это все на уровне шаманства или надо в каждом конкретном случае просто проэксперементировать.
0
Schizorb
22.12.2012, 17:27     Символ '\n' и манипулятор endl
  #22

Не по теме:

Цитата Сообщение от Croessmah Посмотреть сообщение
А если дальше с файлом необходимо работать?
Да я применительно только к этому конкретному примеру. Смотрел варианты, при которых сбросится буфер. А если дальше с файлом работать надо, это уж от конкретной задачи зависит.

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.12.2012, 17:27
Привет! Вот еще темы с ответами:

Можно ли заменить \n на endl ? - C++
Есть два рабочих кода.Я экспериментировал с ними в одном кодк где оператор count, &quot;endl&quot; можно заменить \n. Но в коде где функция printf...

Что делает endl - C++
Код типа cout &lt;&lt; &quot;blahblahblah&quot; &lt;&lt; endl зачем там endl, вроде и без него все нормально работает

`endl' undeclared (first use in this function) - C++
#include &lt;stdio.h&gt; #include &lt;iostream.h&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt; void main() { double (*pf)(double x); ...

endl необъявленный идентификатор - C++
Почему компилятор использует endl, как переменную, а не переход на новую строку?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
22
22.12.2012, 17:27
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru