979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
|
||||||
1 | ||||||
Собственный манипулятор24.08.2013, 21:49. Показов 9031. Ответов 23
Метки нет (Все метки)
Здорова господа!
Я пытаюсь создать свой собственный манипулятор, который будет принимать основу числа: десять шестнадцать и два и само число, и будет выводить число в соотсветствующей системе счисления. От я набраса примерно манипулятор
Мне вообщето нужно написать токой based который бы принимал бы два инт аргумента и выводил число в соответствующей системе счисления, если я определю такую функцию, то я ее так вызвать не могу cout <<based(2,9); допустим, потому что ошибка, я могу ее просто вызвать как функцию. От интересно будет ли такая функция считаться манипулятором или то что выше в коде манипулятора, а если функция то это будет просто функция????? Просто в с++ двоичной системы нету, мне нужно вывод делать в двоично системе.
0
|
24.08.2013, 21:49 | |
Ответы с готовыми решениями:
23
Как передать параметр в собственный манипулятор с параметром? Манипулятор ws Определить манипулятор Setw() манипулятор |
347 / 292 / 37
Регистрация: 23.03.2012
Сообщений: 838
|
|
24.08.2013, 21:53 | 2 |
1
|
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
|
|
24.08.2013, 21:54 [ТС] | 3 |
Nekto, Да ладно я знаю, я имел введу что нету манипулятора такого как hex или dec.
0
|
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
|
|
24.08.2013, 21:59 [ТС] | 6 |
Да есть, но дело не в том, нужно вообще понять что такое манипуляторы и как создавать свои собственные.
0
|
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
|
|||||||||||
24.08.2013, 22:04 [ТС] | 8 | ||||||||||
От есть задачка: "Определите манипулятор вывода based, имеющий два аргумента — систему счисления и целое значение, и выводящий целое число в соответствии с указанной системой счисления. Например, based(2,9) должно вывести 1001."
Будет ли считаться манипулятором если я просто создам функцию
Добавлено через 1 минуту я буду просто свою функцию вызывать если основа будет два
если 10 то cout <<dec<<число;
0
|
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
|
||||||
24.08.2013, 22:08 [ТС] | 10 | |||||
А если такая функция будет:
based(cout,2,9); то это тоже не манипулятор????
0
|
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
|
|
24.08.2013, 22:16 [ТС] | 12 |
Jupiter, Вот из этой строки можно вывод сделать что если я определю функцию void based(int,int) и вызову based(2,9) и она выведет 1001, значит она манипулятор. Если условие задачи внимательно почитать получается что функция и есть манипулятор ???
Добавлено через 3 минуты Можно манипулятором считать функции которые меняют настройки потока, токо она не через там инструменты так сказать определенные манипуляторы потока изменила поток, а сама как бы вручную, то значит получается что она и есть манипулятор? Это имеется в веду void based(int,int);
0
|
2381 / 1665 / 279
Регистрация: 29.05.2011
Сообщений: 3,399
|
|
24.08.2013, 22:17 | 13 |
Не знаю изменилось ли чего в C++11, но до него стандартного способа определить манипулятор с аргументами не было.
0
|
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
|
|
24.08.2013, 22:19 [ТС] | 14 |
grizlik78,
То есть четко сказать нельзя что это манипулятор, а это нет правильно ж? Тогда задачку решить не составляет труда, написать функцию да и все дела.
0
|
What a waste!
1608 / 1300 / 180
Регистрация: 21.04.2012
Сообщений: 2,729
|
||||||
24.08.2013, 22:19 | 15 | |||||
ninja2, если охота писать вроде
0
|
2381 / 1665 / 279
Регистрация: 29.05.2011
Сообщений: 3,399
|
|
24.08.2013, 22:29 | 16 |
Почему нельзя? Сказали же уже. Не манипулятор это. Манипулятор можно вставлять в потоки ввода и вывода с помощью операторов << и >>. А просто функция — это просто функция, пусть даже она изменяет настройки потока.
0
|
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
|
|
24.08.2013, 22:40 [ТС] | 17 |
А от смотри условие задачи: "Определите манипулятор вывода based, имеющий два аргумента — систему счисления и целое значение, и выводящий целое число в соответствии с указанной системой счисления. Например, based(2,9) должно вывести 1001."
Тут же видно что манипулятором называется функция based, значит получается что функции тоже бывают манипуляторами? Почему ты так думаешь, если в поток нельзя вставить, то значит не манипулятор?
0
|
2381 / 1665 / 279
Регистрация: 29.05.2011
Сообщений: 3,399
|
|
24.08.2013, 22:46 | 18 |
Ну в принципе, можно заставить based(2, 9) возвращать "1001" в виде std::string или указателя на какой-то статический буфер. Тогда даже в поток можно будет вставить. Но не знаю кто придумал называть это манипулятором. А конструкция based(2) << 9 для стандартного потока работать не будет.
1
|
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
|
|
24.08.2013, 22:50 [ТС] | 19 |
Это задачка из книги Страуструпа, так что можно верить, разве что перевод мог исказить смысл но наврятли, так что как есть так есть, под манипуляторами понимают видимо действие, а не конструкцию языка.
0
|
24.08.2013, 22:50 | 20 |
0
|
24.08.2013, 22:50 | |
24.08.2013, 22:50 | |
Помогаю со студенческими работами здесь
20
Написать свой манипулятор Манипулятор std::endl Символ '\n' и манипулятор endl Манипулятор ввода / вывода Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |