информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Где водятся OGRыАтака на Internet
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
[C++] ostream 21.11.02 12:22  Число просмотров: 1423
Автор: amirul <Serge> Статус: The Elderman
<"чистая" ссылка>
Извращение все это. Синтаксис ostream-а это уже и есть форматированный вывод, но с немножко видоизмененным представлением формата.

Сравни:
printf("Hello, %s\n", name);
cout << "Hello, " << name << endl;

printf("%.8x", n);
cout << width(8) << hex << n;

И так далее. Научись пользоваться ostream-ом и тебе не придется больше задать этот вопрос. C++ - ский iostream это самая гибкая реализация форматирования со статической проверкой типов, возможностью расширения на новые типы, возможностью управления печатью при помощи манипуляторов (можно и свои манипуляторы писать). Можно даже свои потоки писать и при этом совместимость со старым кодом, работающим просто с iostream останется.

ЗЫ: Сначала я хотел предложить написать несколько классов, но по мере того как описывал, что именно надо сделать, понял, что получается именно плюсовые потоки. Чай, разработчики стандартной библиотеки тоже не лохи :-)

ЗЗЫ: Если тебе к примеру обязательно нужна строка в некотором месте (ну боишься ты что не уследишь за типами сам и объявишь int my_name; cout << "My name is " << my_name;), намиши манипулятор must_be_string() (об этом читай страуструпа или сразу iomanip), который сможет конструироваться только из char *. Ну если ты сунешь туды чего-й-то не того - компилятор в обязательном порядке матюкнется.
После этого пиши cout << "My name is " << must_be_string(my_name);
Только ИМХО это тоже изврат.
<programming> Поиск 






Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach