Модераторы: 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   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
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.0982 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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