Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
[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);
Только ИМХО это тоже изврат.
|
|
|