Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
Kodirovsshik
16 / 16 / 11
Регистрация: 28.10.2016
Сообщений: 75
Завершенные тесты: 1
#1

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

06.04.2017, 19:36. Просмотров 946. Ответов 5
Метки с++ (Все метки)

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

P.s. Какая разница, зачем? Надо!
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.04.2017, 19:36
Ответы с готовыми решениями:

Манипулятор std::endl
Добрый день! Манипулятор std::endl - это некая глобальная функция, но почему...

Ошибка в std::cout<<std::endl
есть следующая задача: -создать класс множество целых чисел. перегрузить...

#include <listream>. Std. Endl
#include &lt;conio.h&gt; #include &lt;lostream&gt; using std:: cout; using std:: endl;...

Как переопределить функцию так, чтобы она не только могла принимать разные параметры, но и возвращать тоже разные?
То есть я считаю несправедливым, если такое проканывает: void f () {;} void f...

std::endl; и std::cout"/n"; - одно и то же?
Весь вопрос в теме.... std::endl; и std::cout&lt;&lt;&quot;/n&quot;; - одно и то же?

5
Photofenix
61 / 61 / 39
Регистрация: 18.11.2016
Сообщений: 511
Завершенные тесты: 1
06.04.2017, 19:53 #2
std::endl; - перевод строки и очистка потока.
Имеете ввиду так?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <string>
#include <Windows.h>
 
 
void myfunc (std::string mystr){
    std::cout << "Вызов из функции: ";
    std::cout << mystr << std::endl;
}
 
int main(){
 
    SetConsoleCP (1251);
    SetConsoleOutputCP (1251);
 
    std::string str;
    std::cout << "Введите строку: ";
    std::cin >> str;
    myfunc (str);
    
    system ("pause");
    return 0;
}
0
nd2
2828 / 2398 / 1054
Регистрация: 29.01.2016
Сообщений: 8,022
06.04.2017, 19:56 #3
Цитата Сообщение от Photofenix Посмотреть сообщение
Имеете ввиду так?
Ясно же написано:
Цитата Сообщение от Kodirovsshik Посмотреть сообщение
передавать std::endl в качестве аргумента
0
avgoor
1008 / 602 / 157
Регистрация: 05.12.2015
Сообщений: 1,686
06.04.2017, 19:57 #4
Лучший ответ Сообщение было отмечено Kodirovsshik как решение

Решение

Цитата Сообщение от Kodirovsshik Посмотреть сообщение
std::endl в качестве аргумента? Уже 3 часа голову ломаю!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
 
template<class _Elem, class _Traits>
void foo(std::basic_ostream<_Elem, _Traits>& os, std::basic_ostream<_Elem, _Traits>& (*param)(std::basic_ostream<_Elem, _Traits>&))
{
    os << param;
}
 
void bar(std::ostream& os, std::ostream&(*param)(std::ostream&)) // без шаблона, для char-овых потоков
{
    os << param;
}
 
int main()
{
    std::cout << "Hello,";
    foo(std::cout, std::endl);
    bar(std::cout, std::endl);
    std::cout << "world!";
}
1
Max Dark
шКодер самоучка
1923 / 1723 / 847
Регистрация: 09.10.2013
Сообщений: 3,800
Записей в блоге: 6
Завершенные тесты: 2
06.04.2017, 20:00 #5
Цитата Сообщение от Kodirovsshik Посмотреть сообщение
Какого типа std::endl
std::endl по сути является шаблоном функции
0
Kodirovsshik
16 / 16 / 11
Регистрация: 28.10.2016
Сообщений: 75
Завершенные тесты: 1
07.04.2017, 21:16  [ТС] #6
Цитата Сообщение от avgoor Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
 
template<class _Elem, class _Traits>
void foo(std::basic_ostream<_Elem, _Traits>& os, std::basic_ostream<_Elem, _Traits>& (*param)(std::basic_ostream<_Elem, _Traits>&))
{
    os << param;
}
 
void bar(std::ostream& os, std::ostream&(*param)(std::ostream&)) // без шаблона, для char-овых потоков
{
    os << param;
}
 
int main()
{
    std::cout << "Hello,";
    foo(std::cout, std::endl);
    bar(std::cout, std::endl);
    std::cout << "world!";
}
Спасибо вам огромное!
0
07.04.2017, 21:16
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.04.2017, 21:16

Есть ли в std, или где-нибудь ещё, константа для пустой строки (""), как endl (\n) для символа переноса?
Раздражает писать так: return &quot;&quot;;

Чем отличается "\n" от std::endl?
чем они отличаются?

Как перехватить вывод в поток endl?
Делаю систему логгирование в своей програмке. И вот возникла необходимость...


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

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

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