Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Флаги C++, Аналог С в С++ 
V
    Опции темы
IValdemar
  Дата 12.2.2012, 19:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 10.1.2012

Репутация: нет
Всего: нет



Собственно возник вопрос:
Каким образом на С++ можно написать конструкцию, аналогичную 
Код

printf("%09d",number);

Можно ли это сделать как-то, используя cout.
PM MAIL Skype   Вверх
rumit7
Дата 12.2.2012, 20:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 71
Регистрация: 16.6.2011

Репутация: 6
Всего: 7



Цитата(IValdemar @ 12.2.2012,  19:51)
Собственно возник вопрос:
Каким образом на С++ можно написать конструкцию, аналогичную 
Код

printf("%09d",number);

Можно ли это сделать как-то, используя cout.

Вроде так:

Код

#include <iostream> 
#include <iomanip> 

int main()
{
  int number  = 2;
  std::cout << std::setfill('0');
  std::cout << std::setw ( 9 ) << number <<std::endl;
}



Вывод:

Цитата

000000002


Можно почитать здесь или здесь.

Это сообщение отредактировал(а) rumit7 - 12.2.2012, 20:09
PM MAIL   Вверх
IValdemar
Дата 12.2.2012, 20:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 10.1.2012

Репутация: нет
Всего: нет



Большое спасибо! Именно то, что я искал smile 

Это сообщение отредактировал(а) IValdemar - 12.2.2012, 20:22
PM MAIL Skype   Вверх
volatile
Дата 12.2.2012, 20:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2107
Регистрация: 7.1.2011

Репутация: 37
Всего: 85



2-ой способ
Код

#include <boost/format.hpp>
...
std::cout << boost::format("%09d\n") % number;

имитация принтфа
 smile 
PM MAIL   Вверх
boostcoder
Дата 12.2.2012, 20:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(volatile @  12.2.2012,  20:13 Найти цитируемый пост)
имитация принтфа

boost.format с легкостью делает то, чего printf никогда не сможет. плюс еще тележка возможностей.


Это сообщение отредактировал(а) boostcoder - 12.2.2012, 20:42
PM WWW   Вверх
volatile
Дата 12.2.2012, 20:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2107
Регистрация: 7.1.2011

Репутация: 37
Всего: 85



boostcoder, я что-нибудь плохого говорил про буст формат?
PM MAIL   Вверх
newbee
Дата 12.2.2012, 20:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бревно
**


Профиль
Группа: Участник
Сообщений: 703
Регистрация: 24.8.2011

Репутация: 4
Всего: 19



Цитата(boostcoder @  12.2.2012,  21:20 Найти цитируемый пост)
boost.format с легкостью делает то, чего printf никогда не сможет. плюс еще тележка возможностей.
Одна из которых - получение остатка от деления.



--------------------
You're face to face
With man who sold the world
PM   Вверх
boostcoder
Дата 12.2.2012, 20:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(newbee @  12.2.2012,  20:36 Найти цитируемый пост)
получение остатка от деления

это плейсхолдер. и никакой путаницы в случае с boost.format нет. просто доку читать нужно.
ты еще вспомни про поразрядный сдвиг.

Добавлено через 1 минуту и 16 секунд
volatile, сорри. что-то я недоспавший сегодня smile 
PM WWW   Вверх
volatile
Дата 12.2.2012, 20:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2107
Регистрация: 7.1.2011

Репутация: 37
Всего: 85



Цитата(boostcoder @  12.2.2012,  20:41 Найти цитируемый пост)
ты еще вспомни про поразрядный сдвиг.

ну вообще да.
Цитата(volatile @  12.2.2012,  20:13 Найти цитируемый пост)
std::cout << boost::format("%09d\n") % number;

здесь по-идее cout сдвигается влево на остаток от деления функции boost::format() на number
 smile

PM MAIL   Вверх
newbee
Дата 12.2.2012, 20:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бревно
**


Профиль
Группа: Участник
Сообщений: 703
Регистрация: 24.8.2011

Репутация: 4
Всего: 19



Цитата(boostcoder @  12.2.2012,  21:41 Найти цитируемый пост)
это плейсхолдер.
Кэп, вы сегодня на коне!

Цитата(boostcoder @  12.2.2012,  21:41 Найти цитируемый пост)
ты еще вспомни про поразрядный сдвиг.
Тоже идиотизм. С++-ная система вывода и форматирования вообще крайне ублюдочна в сравнении с ее сишным предшественником.


--------------------
You're face to face
With man who sold the world
PM   Вверх
boostcoder
Дата 12.2.2012, 20:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



такова цена за перегрузку операторов.
но ИМХО, мне жава-код без этого напоминает сишный код.

Добавлено через 44 секунды
ы. как это у меня получилось два сообщения за раз отправить? оО

Добавлено через 2 минуты и 33 секунды
Цитата(newbee @  12.2.2012,  20:52 Найти цитируемый пост)
крайне ублюдочна

все вняли гласу разума, и пошли переписывать стандарт. молча.

Добавлено через 4 минуты и 17 секунд
newbee, не скатывайся до уровня некоторых персонажей. ведь все равно ничего не изменится. впустую троллишь.
PM WWW   Вверх
boostcoder
Дата 12.2.2012, 20:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



такова цена за перегрузку операторов.
но ИМХО, мне жава-код без этого напоминает сишный код.

PM WWW   Вверх
newbee
Дата 12.2.2012, 21:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бревно
**


Профиль
Группа: Участник
Сообщений: 703
Регистрация: 24.8.2011

Репутация: 4
Всего: 19



Цитата(boostcoder @  12.2.2012,  21:52 Найти цитируемый пост)
все вняли гласу разума, и пошли переписывать стандарт. молча.
Никто никуда не пойдет, все жрут, что дают. Кто-то делает свои поделки вроде буст-формата.



--------------------
You're face to face
With man who sold the world
PM   Вверх
volatile
Дата 12.2.2012, 21:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2107
Регистрация: 7.1.2011

Репутация: 37
Всего: 85



Цитата(newbee @  12.2.2012,  20:52 Найти цитируемый пост)
++-ная система вывода и форматирования вообще крайне ублюдочна в сравнении с ее сишным предшественником. 

увы это так. Но что-то нужно было сделать с принтфом. Потому-как он подрывал одну из основных идей С++, безопасностью типов.
Поставив себя на место страуструпа, согласитесь нужно было что-то придумать.
Ну и придумал cout, со сдвигом. Потом говорят раскаивался, но поезд уже ушел.
PM MAIL   Вверх
boostcoder
Дата 12.2.2012, 21:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(newbee @  12.2.2012,  21:01 Найти цитируемый пост)
Никто никуда не пойдет

вот и я о том же. к чему пустословить? не солидно же.
PM WWW   Вверх
newbee
Дата 12.2.2012, 21:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бревно
**


Профиль
Группа: Участник
Сообщений: 703
Регистрация: 24.8.2011

Репутация: 4
Всего: 19



Цитата(volatile @  12.2.2012,  22:04 Найти цитируемый пост)
согласитесь нужно было что-то придумать.
Я не спорю, страсу вообще много нужно было придумать :facepalm, не знаю раскаялся ли он, но поезд уже и правда ушел. Вообще перегруженный сдвиг - меньшая из причин не пользоваться стримами.


--------------------
You're face to face
With man who sold the world
PM   Вверх
boostcoder
Дата 12.2.2012, 21:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(newbee @  12.2.2012,  21:10 Найти цитируемый пост)
раскаялся ли он

в чем? в том что большинство предпочитают ЯП вроде пайтона/жавы/лисп? - каждому свое smile 
PM WWW   Вверх
newbee
Дата 12.2.2012, 21:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бревно
**


Профиль
Группа: Участник
Сообщений: 703
Регистрация: 24.8.2011

Репутация: 4
Всего: 19



Цитата(boostcoder @  12.2.2012,  22:14 Найти цитируемый пост)
в чем? в том что большинство предпочитают ЯП вроде пайтона/жавы/лисп? - каждому свое
 Предпочтения и реальные достоинства тех или иных вещей, в частности языков, вообще очень слабо связаны.



--------------------
You're face to face
With man who sold the world
PM   Вверх
mes
Дата 12.2.2012, 23:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(volatile @  12.2.2012,  20:04 Найти цитируемый пост)
Поставив себя на место страуструпа, согласитесь нужно было что-то придумать.
Ну и придумал cout, со сдвигом. Потом говорят раскаивался, но поезд уже ушел. 

а какое отношение к сдвигу в потоках имеет Стауструп ?!
а тот, кто имеет расскаивался не из за использования оператора, а за то что инстумент вышел не очень удобный..

Добавлено через 1 минуту и 11 секунд
Цитата(newbee @  12.2.2012,  20:10 Найти цитируемый пост)
 Вообще перегруженный сдвиг - меньшая из причин не пользоваться стримами. 

вот здесь абсолютно согласен  smile



--------------------
PM MAIL WWW   Вверх
volatile
Дата 13.2.2012, 00:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2107
Регистрация: 7.1.2011

Репутация: 37
Всего: 85



Цитата(mes @  12.2.2012,  23:58 Найти цитируемый пост)
а какое отношение к сдвигу в потоках имеет Стауструп ?!
а тот, кто имеет расскаивался не из за использования оператора, а за то что инстумент вышел не очень удобный..

mes, кто именно? я не очень хорошо знаю историю создания С++.

Анализировать что там именно неудобно, не будем. Оно все в корне не удобно.

Добавлено @ 00:31
Цитата(volatile @  13.2.2012,  00:19 Найти цитируемый пост)
я не очень хорошо знаю историю создания С++.

У меня просто есть старая книжка страуса, года так 198* какого-то. СТЛ там еще и не пахнет, вообще. А cout уже есть, и Страус там пишет что типа "мы" это придумали. Кто мы не уточняется.

Это сообщение отредактировал(а) volatile - 13.2.2012, 00:35
PM MAIL   Вверх
mes
Дата 13.2.2012, 01:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(volatile @  12.2.2012,  23:19 Найти цитируемый пост)
, кто именно? я не очень хорошо знаю историю создания С++.

я  тоже не очень, но созданием стл, еще задолго до того как она обрела свои принятые стандартом очертания, занимался Степанов .. При этом влияя на  развитие языка, без изменений которого, стл бы была бы просто не возможна smile



--------------------
PM MAIL WWW   Вверх
volatile
Дата 13.2.2012, 01:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2107
Регистрация: 7.1.2011

Репутация: 37
Всего: 85



Цитата(mes @  13.2.2012,  01:06 Найти цитируемый пост)
занимался Степанов .. 

Ну Степанов то вряд-ли придума cout
Цитата

Alexander Alexandrovich Stepanov (Russian: Александр Александрович Степанов) (born November 16, 1950 in Moscow) is the primary designer and implementer of the C++ Standard Template Library,[1] which he started to develop around 1992 

Начал в 1992. 
Книжка с cout  от Страуструпа за 1988 год.

Ну да ладно, не суть важно. smile 
PM MAIL   Вверх
boostcoder
Дата 13.2.2012, 01:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



стримы я впервые увидел в борланд турбо Си или С++. году, эдак, в 98..
PM WWW   Вверх
mes
Дата 13.2.2012, 01:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Его мнение по яве и ей подобным : 
Цитата


Question:
This mean a radical change of mind from both imperative and OO thinking. What are the benefits, and the drawbacks, of this paradigm compared to the "standard" OO programming of SmallTalk or, say, Java? 

Answer:
My approach works, theirs does not work.[B] Try to implement a simple thing in the object oriented way, say, max.
 I do not know how it can be done. Using generic programming I can write:
template <class StrictWeakOrdered>
inline StrictWeakOrdered& max(StrictWeakOrdered& x,
StrictWeakOrdered& y) {
return x < y ? y : x;
}

and
template <class StrictWeakOrdered>
inline const StrictWeakOrdered& max(const StrictWeakOrdered& x,
const StrictWeakOrdered& y) {
return x < y ? y : x;
}
(you do need both & and const &). And then I define what strict weak ordered means. Try doing it in Java. You can't write a generic max() in Java that takes two arguments of some type and has a return value of that same type. Inheritance and interfaces don't help. And if they cannot implement max or swap or linear search, what chances do they have to implement really complex stuff? These are my litmus tests: if a language allows me to implement max and swap and linear search generically - then it has some potential. [/B]


http://www.stlport.org/resources/StepanovUSA.html



Это сообщение отредактировал(а) mes - 13.2.2012, 01:23


--------------------
PM MAIL WWW   Вверх
Modul
Дата 13.2.2012, 01:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 238
Регистрация: 17.2.2006

Репутация: нет
Всего: нет



Это супер большая проблема.

Да, куда катится мир.  smile 

В никуда, особенно в среде it-шникоффф.

Парни, не забываем - горе от ума. @ Грибоедов Александр Сергеевич
--------------------
I'll be back !
PM MAIL   Вверх
mes
Дата 13.2.2012, 01:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(volatile @  13.2.2012,  00:15 Найти цитируемый пост)

Начал в 1992. 
Книжка с cout  от Страуструпа за 1988 год.

начал он вроде в 87, но не мог многое реализовать, из за чегореализация стл была отложена.. 



--------------------
PM MAIL WWW   Вверх
boostcoder
Дата 13.2.2012, 01:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(boostcoder @  13.2.2012,  01:15 Найти цитируемый пост)
в 98

неее. в 96.
но сам компилятор, по моему, 92го года.
PM WWW   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1170 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.