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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 198, средняя оценка - 4.80
sunlight17
0 / 0 / 0
Регистрация: 29.12.2010
Сообщений: 29
#1

endl - C++

22.01.2011, 21:13. Просмотров 35749. Ответов 28
Метки нет (Все метки)

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

Зачем она нужна и что выполняет?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.01.2011, 21:13
Здравствуйте! Я подобрал для вас темы с ответами на вопрос endl (C++):

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

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

`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++
Код типа cout &lt;&lt; &quot;blahblahblah&quot; &lt;&lt; endl зачем там endl, вроде и без него все нормально работает

Символ '\n' и манипулятор endl - C++
Встретил в одной книге вот такое выражение (дословно): Если операционная система не использует буферизацию вывода, то между символом...

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

28
Nameless One
Эксперт С++
5777 / 3427 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
25.01.2011, 05:32 #16
Цитата Сообщение от sunlight17 Посмотреть сообщение
всё рано не помогает asics
Тебе ж сказали уже: sleep - это для *nix'ов (unistd.h), в винде пиши:
C
1
2
3
#include <windows.h>
//...
Sleep(1000);
0
taras atavin
3570 / 1754 / 91
Регистрация: 24.11.2009
Сообщений: 27,567
25.01.2011, 06:08 #17
Цитата Сообщение от sunlight17 Посмотреть сообщение
функцию ... например: cout<<....<<endl
. endl не функция. Судя по синтаксису, это вообще константа.
0
Nameless One
Эксперт С++
5777 / 3427 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
25.01.2011, 06:12 #18
Цитата Сообщение от taras atavin Посмотреть сообщение
. endl не функция. Судя по синтаксису, это вообще константа.
endl - это потоковый манипулятор, который, по сути, работает как функция над потоком
0
taras atavin
3570 / 1754 / 91
Регистрация: 24.11.2009
Сообщений: 27,567
25.01.2011, 06:19 #19
Была бы функция, имела бы скобки. И "\n" работает также. "\n" работает как функция?
0
Nameless One
Эксперт С++
5777 / 3427 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
25.01.2011, 06:22 #20
taras atavin, а "\n" сбрасывает буфер для буферизированных потоков?
А чтобы не пороть глупости, я бы посоветовал почитать литературу по теме
0
taras atavin
3570 / 1754 / 91
Регистрация: 24.11.2009
Сообщений: 27,567
25.01.2011, 06:28 #21
Сложно в самом потоке реализовать сброс буфера? Ваш потоковый манипулятор не имеет скобок. Или за ним скрывается
C++
1
#define endl endlproc()
? А по ссылке нет ничего, кроме синтаксиса.
0
Nameless One
Эксперт С++
5777 / 3427 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
25.01.2011, 06:33 #22
Цитата Сообщение от taras atavin Посмотреть сообщение
А по ссылке нет ничего, кроме синтаксиса.
Ой ли? По ссылке приводится декларация манипулятора:
C++
1
ostream& endl ( ostream& os );
Цитата Сообщение от taras atavin Посмотреть сообщение
Или за ним скрывается <...>
Нет, не скрывается
0
Nameless One
Эксперт С++
5777 / 3427 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
25.01.2011, 06:42 #23
Вот тебе такое определение манипуляторов:
Манипуляторами называются специальные функции, позволяющие модифицировать работу потока. Особенность манипуляторов состоит в том, что их можно использовать в качестве правого операнда операции >> или <<. В качестве левого операнда, как обычно, используется поток (ссылка на поток), и именно на этот поток воздействует манипулятор.
0
sunlight17
0 / 0 / 0
Регистрация: 29.12.2010
Сообщений: 29
25.01.2011, 20:42  [ТС] #24
парни приведите мне простенький, но полный код со всеми инклудами, иллюстрирующий возможности оператора sleep();
А то и борланд и дев отказываются компилировать даже это:
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream.h>
#include <conio.h>
#include <windows.h>
 
int main ()
{
    sleep(1000);
 getch();
 return 0;
}
Добавлено через 9 минут
Хах...Срауструп мать его...
Проблема решена
Проблема в чувствительности регистра
В место sleep (1000); нужно написать Sleep (1000);
0
alex_x_x
бжни
2450 / 1655 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
25.01.2011, 20:43 #25
sunlight17, вы слышали, что си/++ чувствительный к регистру, написали же Sleep
oo
0
Nameless One
26.01.2011, 05:05
  #26

Не по теме:

Цитата Сообщение от sunlight17 Посмотреть сообщение
Хах...Срауструп мать его...
Проблема решена
Проблема в чувствительности регистра
В место sleep (1000); нужно написать Sleep (1000);
Мда, и это после того, как два человека тебе уже написали, как надо делать...

1
sunlight17
0 / 0 / 0
Регистрация: 29.12.2010
Сообщений: 29
26.01.2011, 14:58  [ТС] #27
я просто не сразу обратил внимание на заглавную S
0
time123
0 / 0 / 0
Регистрация: 15.11.2012
Сообщений: 53
15.11.2012, 01:08 #28
Сбросит в поток все числа от 0 до 9 одновременно через 10 секунд.
у меня цифры выводились каждую секунду. может это, судя по вашему коду в никсах запускалось? а у меня в винде...
0
Vourhey
Почетный модератор
6486 / 2260 / 123
Регистрация: 29.07.2006
Сообщений: 12,536
15.11.2012, 01:11 #29
Цитата Сообщение от time123 Посмотреть сообщение
у меня цифры выводились каждую секунду
Ну и что? Это от буферизации в консоли зависит.
Цитата Сообщение от time123 Посмотреть сообщение
судя по вашему коду в никсах запускалось?
Да

Добавлено через 55 секунд
Цитата Сообщение от time123 Посмотреть сообщение
а у меня в винде...
И получается, что когда ты свой код перенесешь, он будет работать по-другому в другой ос, в другом терминале. А перевод строки в большинстве зафлашит буфер.
0
15.11.2012, 01:11
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.11.2012, 01:11
Привет! Вот еще темы с ответами:

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

Объекты cin, cout, endl и т.п - C++
Вопрос. Можно ли использовать эти объекты по умолчанию или одной командой? Типа: using std::&quot;все объекты&quot; Лень каждый раз напомнит что...

cin, cout, endl не определены - C++
Всем здрасте=) Есть исходник, он работает и всё с ним отлично, мне необходимо его обфусцировать(т.е. зашифровать путём изменения имен...

#include <listream>. Std. Endl - C++
#include &lt;conio.h&gt; #include &lt;lostream&gt; using std:: cout; using std:: endl; int main() {


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

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

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