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

Собственные манипуляторы - C++

Восстановить пароль Регистрация
 
MahovIV
5 / 6 / 1
Регистрация: 17.09.2013
Сообщений: 337
09.02.2014, 17:14     Собственные манипуляторы #1
Не компиллируется программа в DevC++. Написать программу с двумя своими манипуляторами. Один выводит сообщение, другой устанавливает шестнадцатеричный вывод и ширину поля 10. Программа выглядит вот так.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
 #include <iomanip>
 using namespace std;
 istream &prompt(istream &stream)
 {
cout<<"Vy vvely chislo\n";
 return stream;
 }
 ostream &setup(ostream &stream2)
 {
 stream.setf(ios::Ieft);
 stream << setw(10);
 return stream2;
 }
 int main()
 {
 int i;
 std::cin >>i;
 std::cout<<prompt;
 std::cout << setup << i;
 return 0;
 }
Помогите найти ошибку.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.02.2014, 17:14     Собственные манипуляторы
Посмотрите здесь:

Манипуляторы и флаги формата C++
C++ манипуляторы
манипуляторы C++
C++ Манипуляторы в С++
Залипающие манипуляторы C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Бендерродригез
Сгибальщик
 Аватар для Бендерродригез
42 / 42 / 3
Регистрация: 18.05.2013
Сообщений: 220
Завершенные тесты: 1
09.02.2014, 17:43     Собственные манипуляторы #2
stream2 внутри функции, а не stream.
ios::left, а не ios::Left.
Уже объявлено using namespace std. Зачем std::?

prompt принимает istream&, а применяешь к ostream.
MahovIV
5 / 6 / 1
Регистрация: 17.09.2013
Сообщений: 337
09.02.2014, 17:49  [ТС]     Собственные манипуляторы #3
Цитата Сообщение от Бендерродригез Посмотреть сообщение
stream2 внутри функции, а не stream.
ios::left, а не ios::Left.
Уже объявлено using namespace std. Зачем std::?

prompt принимает istream&, а применяешь к ostream.
Исправил. Что ещё не так?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
 #include <iomanip>
 using namespace std;
 istream &prompt(istream &stream)
 {
cout<<"Vy vvely chislo\n";
 return stream;
 }
 ostream &setup(ostream &stream)
 {
 stream.setf(ios::left);
 stream << setw(10);
 return stream;
 }
 int main()
 {
 int i;
 cin >>i;
 cout<<prompt;
cout << setup << i;
 return 0;
 }
Бендерродригез
Сгибальщик
 Аватар для Бендерродригез
42 / 42 / 3
Регистрация: 18.05.2013
Сообщений: 220
Завершенные тесты: 1
09.02.2014, 17:51     Собственные манипуляторы #4
Первые 2 ошибки могла помочь выявить любая IDE.
Может пора начать использовать?

Добавлено через 47 секунд
Цитата Сообщение от Бендерродригез Посмотреть сообщение
prompt принимает istream&, а применяешь к ostream.
Вот это. Функция должна работать с ostream.
И строка stream.setf(ios::left); вообще не нужна.
MahovIV
5 / 6 / 1
Регистрация: 17.09.2013
Сообщений: 337
09.02.2014, 18:59  [ТС]     Собственные манипуляторы #5
Получилось, спасибо.
Yandex
Объявления
09.02.2014, 18:59     Собственные манипуляторы
Ответ Создать тему
Опции темы

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