Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.74/364: Рейтинг темы: голосов - 364, средняя оценка - 4.74
0 / 0 / 0
Регистрация: 29.12.2010
Сообщений: 29
1

endl

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

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

Зачем она нужна и что выполняет?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.01.2011, 21:13
Ответы с готовыми решениями:

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

endl
#include &lt;iostream&gt; int main() { using std::cout; using std::endl; unsigned short int...

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

`endl' undeclared (first use in this function)
#include &lt;stdio.h&gt; #include &lt;iostream.h&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt; void main() {...

28
216 / 216 / 33
Регистрация: 26.12.2010
Сообщений: 691
22.01.2011, 21:14 2
перенос на новую строку. аналогично '\n'
1
Freelance
Эксперт С++
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
22.01.2011, 21:21 3
+ очищает поток.
1
0 / 0 / 0
Регистрация: 29.12.2010
Сообщений: 29
23.01.2011, 13:12  [ТС] 4
asics, а нужна ли эта самая очистка потока, что будет если endl не ставить
0
392 / 284 / 53
Регистрация: 26.12.2009
Сообщений: 874
23.01.2011, 14:44 5
sunlight17, не смертельно
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
23.01.2011, 15:06 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);
    }
Будет выводить по одному числу в секунду.
5
Эксперт С++
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
23.01.2011, 16:25 7
Цитата Сообщение от sunlight17 Посмотреть сообщение
asics, а нужна ли эта самая очистка потока, что будет если endl не ставить
В буферизированных потоках это будет гарантией того, что данные попадут непосредственно в поток в нужное время (естественно, если не случилось никаких других ошибок)
0
0 / 0 / 0
Регистрация: 29.12.2010
Сообщений: 29
24.01.2011, 16:42  [ТС] 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;
}
0
Freelance
Эксперт С++
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
24.01.2011, 16:43 9
sunlight17, Подключи windows.h
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
24.01.2011, 16:49 10
Цитата Сообщение от sunlight17 Посмотреть сообщение
sleep(1);
выдаёт ошибку, для этого функции нужно что-нибудь инклудидь?
unistd.h
но это для никсов
0
0 / 0 / 0
Регистрация: 29.12.2010
Сообщений: 29
24.01.2011, 18:36  [ТС] 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;
}
компилирую в билдере
0
Freelance
Эксперт С++
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
24.01.2011, 18:38 12
sunlight17, Не
C++
1
main()
а
C++
1
int main()
и
C++
1
#include <iostream>
замение на
C++
1
#include <iostream.h>
еще удали строчку
C++
1
using namespace std;
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
24.01.2011, 18:38 13
потому что в винде это будет Sleep(1000); если винапи
0
0 / 0 / 0
Регистрация: 29.12.2010
Сообщений: 29
24.01.2011, 18:49  [ТС] 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;
}
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
24.01.2011, 18:50 15
Цитата Сообщение от sunlight17 Посмотреть сообщение
#include <iostream.h>
#include <conio.h>
Жжошь
0
Эксперт С++
5828 / 3479 / 358
Регистрация: 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
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
25.01.2011, 06:08 17
Цитата Сообщение от sunlight17 Посмотреть сообщение
функцию ... например: cout<<....<<endl
. endl не функция. Судя по синтаксису, это вообще константа.
0
Эксперт С++
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
25.01.2011, 06:12 18
Цитата Сообщение от taras atavin Посмотреть сообщение
. endl не функция. Судя по синтаксису, это вообще константа.
endl - это потоковый манипулятор, который, по сути, работает как функция над потоком
0
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
25.01.2011, 06:19 19
Была бы функция, имела бы скобки. И "\n" работает также. "\n" работает как функция?
0
Эксперт С++
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
25.01.2011, 06:22 20
taras atavin, а "\n" сбрасывает буфер для буферизированных потоков?
А чтобы не пороть глупости, я бы посоветовал почитать литературу по теме
0
25.01.2011, 06:22
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.01.2011, 06:22
Помогаю со студенческими работами здесь

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

Что не так с endl?
Пишу cout &lt;&lt; endl; не видит. Пишу cout &lt;&lt; endl; cout &lt;&lt; endl;Видит. Что такое? Причем в одном месте...

Можно ли заменить \n на endl ?
Есть два рабочих кода.Я экспериментировал с ними в одном кодк где оператор count, &quot;endl&quot; можно...

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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru