Форум программистов, компьютерный форум CyberForum.ru

endl - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 198, средняя оценка - 4.80
sunlight17
0 / 0 / 0
Регистрация: 29.12.2010
Сообщений: 29
22.01.2011, 21:13     endl #1
Объясните пожалуйста зачем вставлять эту функцию после выводимого потока
например:
cout<<....<<endl;

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

endl необъявленный идентификатор C++
C++ Что делает endl
C++ `endl' undeclared (first use in this function)
Символ '\n' и манипулятор endl C++
endl C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
NiRamz
209 / 209 / 16
Регистрация: 26.12.2010
Сообщений: 691
22.01.2011, 21:14     endl #2
перенос на новую строку. аналогично '\n'
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
22.01.2011, 21:21     endl #3
+ очищает поток.
sunlight17
0 / 0 / 0
Регистрация: 29.12.2010
Сообщений: 29
23.01.2011, 13:12  [ТС]     endl #4
asics, а нужна ли эта самая очистка потока, что будет если endl не ставить
Mayonez
 Аватар для Mayonez
379 / 271 / 20
Регистрация: 26.12.2009
Сообщений: 875
23.01.2011, 14:44     endl #5
sunlight17, не смертельно
Vourhey
Почетный модератор
6468 / 2243 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
23.01.2011, 15:06     endl #6
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от sunlight17 Посмотреть сообщение
asics, а нужна ли эта самая очистка потока, что будет если endl не ставить
Зависит от того, как тебе нужно выводить.
C++
1
2
3
4
5
    for(int i=0; i<10; i++)
    {
        std::cout << i; 
        sleep(1);
    }
Сбросит в поток все числа от 0 до 9 одновременно через 10 секунд.
C++
1
2
3
4
5
    for(int i=0; i<10; i++)
    {
        std::cout << i << std::endl; 
        sleep(1);
    }
Будет выводить по одному числу в секунду.
Nameless One
Эксперт С++
 Аватар для Nameless One
5754 / 3403 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
23.01.2011, 16:25     endl #7
Цитата Сообщение от sunlight17 Посмотреть сообщение
asics, а нужна ли эта самая очистка потока, что будет если endl не ставить
В буферизированных потоках это будет гарантией того, что данные попадут непосредственно в поток в нужное время (естественно, если не случилось никаких других ошибок)
sunlight17
0 / 0 / 0
Регистрация: 29.12.2010
Сообщений: 29
24.01.2011, 16:42  [ТС]     endl #8
всем спс

Добавлено через 4 минуты
Vourhey, у меня почему-то в в строке :
sleep(1);
выдаёт ошибку, для этого функции нужно что-нибудь инклудидь?

Добавлено через 1 минуту
вот код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <conio.h>
using namespace std;
 main ()
{
for (int i=0; i<10;i++)
{
cout<<i;
sleep (1);
}
 
    getch();
    return 0;
}
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
24.01.2011, 16:43     endl #9
sunlight17, Подключи windows.h
Vourhey
Почетный модератор
6468 / 2243 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
24.01.2011, 16:49     endl #10
Цитата Сообщение от sunlight17 Посмотреть сообщение
sleep(1);
выдаёт ошибку, для этого функции нужно что-нибудь инклудидь?
unistd.h
но это для никсов
sunlight17
0 / 0 / 0
Регистрация: 29.12.2010
Сообщений: 29
24.01.2011, 18:36  [ТС]     endl #11
спасибо

Добавлено через 12 минут
всё равно вылазиет ошибка, у меня сейчас винда стоит, подключение windows.h проблему почему-то не решает

Добавлено через 1 минуту
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <conio.h>
#include <windows.h>
using namespace std;
 main ()
{
for (int i=0; i<10;i++)
{
cout<<i<<endl;
sleep (1);
}
 
    getch();
    return 0;
}
компилирую в билдере
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
24.01.2011, 18:38     endl #12
sunlight17, Не
C++
1
main()
а
C++
1
int main()
и
C++
1
#include <iostream>
замение на
C++
1
#include <iostream.h>
еще удали строчку
C++
1
using namespace std;
Vourhey
Почетный модератор
6468 / 2243 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
24.01.2011, 18:38     endl #13
потому что в винде это будет Sleep(1000); если винапи
sunlight17
0 / 0 / 0
Регистрация: 29.12.2010
Сообщений: 29
24.01.2011, 18:49  [ТС]     endl #14
всё рано не помогает asics

Добавлено через 48 секунд
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream.h>
#include <conio.h>
#include <windows.h>
 
int main ()
{
for (int i=0; i<10;i++)
{
cout<<i<<endl;
sleep (1);
}
 
    getch();
    return 0;
}
Vourhey
Почетный модератор
6468 / 2243 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
24.01.2011, 18:50     endl #15
Цитата Сообщение от sunlight17 Посмотреть сообщение
#include <iostream.h>
#include <conio.h>
Жжошь
Nameless One
Эксперт С++
 Аватар для Nameless One
5754 / 3403 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
25.01.2011, 05:32     endl #16
Цитата Сообщение от sunlight17 Посмотреть сообщение
всё рано не помогает asics
Тебе ж сказали уже: sleep - это для *nix'ов (unistd.h), в винде пиши:
C
1
2
3
#include <windows.h>
//...
Sleep(1000);
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
25.01.2011, 06:08     endl #17
Цитата Сообщение от sunlight17 Посмотреть сообщение
функцию ... например: cout<<....<<endl
. endl не функция. Судя по синтаксису, это вообще константа.
Nameless One
Эксперт С++
 Аватар для Nameless One
5754 / 3403 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
25.01.2011, 06:12     endl #18
Цитата Сообщение от taras atavin Посмотреть сообщение
. endl не функция. Судя по синтаксису, это вообще константа.
endl - это потоковый манипулятор, который, по сути, работает как функция над потоком
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
25.01.2011, 06:19     endl #19
Была бы функция, имела бы скобки. И "\n" работает также. "\n" работает как функция?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.01.2011, 06:22     endl
Еще ссылки по теме:

C++ cin, cout, endl не определены
C++ Объекты cin, cout, endl и т.п
#include <listream>. Std. Endl C++

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

Или воспользуйтесь поиском по форуму:
Nameless One
Эксперт С++
 Аватар для Nameless One
5754 / 3403 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
25.01.2011, 06:22     endl #20
taras atavin, а "\n" сбрасывает буфер для буферизированных потоков?
А чтобы не пороть глупости, я бы посоветовал почитать литературу по теме
Yandex
Объявления
25.01.2011, 06:22     endl
Ответ Создать тему
Опции темы

Текущее время: 16:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru