Главная » Просмотр файлов » Б. Страуструп - Язык программирования С++. Специальное издание, 3-изд. Бином. 2004

Б. Страуструп - Язык программирования С++. Специальное издание, 3-изд. Бином. 2004 (1160791), страница 160

Файл №1160791 Б. Страуструп - Язык программирования С++. Специальное издание, 3-изд. Бином. 2004 (Б. Страуструп - Язык программирования С++. Специальное издание, 3-изд. Бином. 2004) 160 страницаБ. Страуструп - Язык программирования С++. Специальное издание, 3-изд. Бином. 2004 (1160791) страница 1602019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 160)

Например: гетр!а1е<с!акя СЬ, сIаяя Тг = сЬаг 1гаик<СЬ» с!аяя Ьак!с /!!еЬи/; риЫ!с Ьая!с к1геатбц/<СЬ, Т ( риЫи: Ьак!с й!ебиЯ; тесла!-Ьаятс /!!еЬи/(); Глава 21. Потоки 716 боо1(я орел ((соля(, базис Гь(еби~' орел (сопя1 сбаг" р, Еоя Ьаяесорептойе тоНе); Ьак!с 3(еби/* сЕояе ((, рго1ес1ес(: тг1иа( !п1кботртапус(~; о!гала((п1 1уре ипйефого((; о(г(иа! Еп1 1уре и((от ((, осипа! ш1 1уре рбасб/а!((т1 1уре с= Тггео/((! гйг!иа(ьл( суре овесу(от (т1 1уре с= ТглеоЯ; туйиа1 бак!с я1геатЬи1<СЬ, Тг>' ке1биЯСЬ" р, я(геатз(ее л(; о!г(иа( роз 1уре яеебо11 (о// 1уре оК (оз Ьазескеебй(гтау, Еоз Ьаке:орептойе т = !ояЬазессп (юк Ьаяеьои1(; и!г1иа(роя 1урезееброк(роя (урер, Еок Ьакесореитойе т = Еоябаяесш (юз Ьазесои1(, и!гала(!п1яупс((; гйг(иа! ио(й !тЬие (соля( !оса(ей (ос)! (; Функции для манипулирования буферами и т.

и. без изменений наследуются о> Ьаз(с з(геатби/. Только функции, влияющие на инициализацию и политику буферизации, должны быть введены отдельно. Как обычно, предоставлены очевидные определения Еурейе/и их аналоги для расширенных символьных потоков; 1урейе/бак(с з1геатбц1<сбаг> к(геатбиЯ 1урейе/'Ьак!с к1г(пуби/<сбаг> к(ппубиЯ Еурейе/Ьаз!с й(еби/<сбаг р(еби/; 1урейе/Ьак(с я(геатби3<тсбаг 1> тк(геатби/; 1урейе~бая(с я1г(пуби/<тос!ьаг 1> тк(ппубцЯ 1урейе/Ьак!с (с(еби/<юсбаг 1> тоЯ(еби~; 21.?.

Национальные особенности Национальная особенность Еоса1е — зто объект, который контролирует классификацию символов на буквы, цифры и т. д., устанавливает порядок следования символов, управляет видом вводимых и выводимых численных значений. <1аще всего национальные особенности неявно используются в библиотеке потоков ввода-вывода, обеспечивая способы написания, принятые для данного естественного языка, и следование традициям. В этом случае пользователь никогда не видит объекта!оса1е. Однако, изменив национальные особенности для некоторого потока з1геат, программист может изменить поведение потока ради выполнения соглашений, принятых в другой культуре. Национальные особенности представляются объектом класса 1оса1е, определенного в пространстве имен з(й, заголово пьый файл <1оса1е> Я Г.2): с(аяя (оса(е ( //полное объявление си.

в я !.2 раб((с; //... // конструктор по улюлнониго копируеьл текуи!ие глобальньсе 1оса1е (( 1бгою; //национольные особенности 717 21.7. Национальные особенности // конопруктор, использующий национальные особенности из С екр1!с!1 !оси!е (сопз1 сапе' лите); //выдает илт конкрегпных национальных особенностей бас!с егс!пу<сЬас> пате () сопи!; !оса1е (сопи! !оса)е5)!Ьсосв(); // копирует национальные особенности сопл! !оса!ей ореха!ос= (с опз1 1оси 1е8 ) Ии ою 0; //копирует национальные особенности // установка новых национальных особенностей !получение предыдущих) згаг!с 1оса1е у!оЬа! (сопз1 1оса1еЦ; зга11с сопз1 1оса1еЬ с!аввы (); //получение осооенностей, опр~деленных С 11ростейшее использование 1оса1е — это переключение с одних национальных особенностей на другие. Например: оо!с!1'0 ( вЫ:!оса!е !ос ('РОЗ!Х~1 //стандиртные национальные особенноипи для РОЯХ ссл.ипЬие (!ос); // пусть с!п пользуется !ос //- //восстановление для с!и национальных особенностей по умолчанию ссл.ипЬие (згди1оса1е ()); Функция !тЬие () является членом Ьав1с 1ов (ф 21.7.1).

' Как показано в вышеприведенном примере, некоторые распространенные национальные особенности имеют строковые имена. Они, как правило, используются совместно с С. Можно установить национальные особенности, которые используется по умолчанию для всех вновь созданных пот.оков: ооЫЯсопв11оса1ей1ос=1оса!еЩ //используесптекущиеглобальние // национальные особенности по улчолчанию ( // теперь национальнььчи особенностями по умолчанию будут 1ос !оса!е о!д д!оЬа! = !оса! есу!оЬа! (!ос); Установка глобальных национальных особенностей не изменяет поведения существующих потоков, пользующихся предыдущим значением глобальных национальных особенностей. В частности, это не влияет на сел, сои! и т.

д, Если нужно изменить их, к ним нужно явно применить функцию !тЬие (). Вызов для потока функции стбие () и установка новых национальных особенностей изменяет некоторые детали его поведения. Можно напрямую использовать члены 1оса1е, можно определять новые 1оса1е, можно дополнять 1оса1е новыми деталями. Например, национальные особенности можно явно использовать, чтобы изменить для вйода и вывода ' обозначение денежных единиц, способ написания дат и т. п. Я 21.10(25] ), а также для того, чтобы преобразовывать кодовые наборы. Концов!пи локализации, классы 1оса1е и/асе1, а также стандартные национальные особенности и фасеты описаны в приложении Е Национальныс особенности в стиле С представлены в <с1оса1е> и <1оса1е.Ь>.

Глава 21. Потоки 718 21.7.1. Функции обратного вызова для потоков Иногда люди хотят кое-что добави~ь к состоянию потока. например, кому-то может захотеться, чтобы поток «знал», в каком виде будут выводиться переменные типа согпр1ех — в полярных или декартовых координатах. Класс Ьов Ьаве предоставляет функцнго ха!(ос (), чтобы выделить память для такой простой информации о состоянии. Значение, возвращаемое ха11ос (), идентифицирует местоположение, к которому можно обратиться через функции !шогг( () и рэогг1( (); с1аев гоз Ьаее( риЬйс: //- -!оз Ьазе (); !оса!е опЬие (сопя!!оса!ей !ос), // установка новых и возвртп старых //национальныхособенностей, сл. 9 Г.2.3 //получение национальных огобенноаг»ей //выделяет память для целого и для указа»леля // (оба инциализируются нуле»о // доступ ь целому »гвогг( (П // дог»пуп к указателю ршогд(о 1оса1е уе1!ос () солз1 з1аасш1ха!1ос (); (опуй пиогг! (ш1 !Г оо!г(*8 ри огг((ш1 »Ь // обратные вызовы: епит еоеп1( егазе еиеп1, ипбие еоеп1, сору/т1 еоеп1); //тип сооытия 1уреде/оол( (*еоеп1 са!!Ьасй) (еоеп1, гоз Ьазезс«!л14; оогг( геум1ег саВЬисй (свел! са!!Ьас(»5, тг г), // прикрепление/к ри о~6(г) ); Иногда разработчику реализации или пользователю нужно знать об изменении в состоянии потока.

Функция геу!в(ег са!!Ьас/г () «регистрирует» функцию, которая будет вызвана, когда случится «событие». Таким образом, при вызове гтЬие (), сору/т1 () пли -гоя Ьаяе() вызываетсяфункция «зарегистрированная» для гтЬие еоеп1 сору(~т1 еоеп1 или егаве еоеп1 соответственно, Когда состояние изменяется, зарегистрированные функции вьглглваготся с аргументом ршогг! (1), где 1 предоставлено ген!в1ег са!1ьасп (). Этот механизм хранения и обратного вызова довольно сложен. Пользуйтесь им, только когда вам крайне необходимо расширить возможности форматирования нижнего уровня. 21.8.

Ввод-вывод на С Поскольку программы на С и С++ часто смешиваются, потоки ввода/вывода С+» часто совмещаются с семейством функций ввода(вывода С вЂ” рг!п(7". Функции ввода/вывода в стиле С представлены в <свййо> н «вй(!о.й>, Поскольку С-функции можно вызывать из С++, некоторые программисты могут предпочесть знакомые С-функции ввода/вывода. Даже если сами вы предпочитаете потоковый ввод,'вывод, вы несомненно когда-нибудь наткнетесь на ввод/вывод в стиле С. Ввод/вывод С и С++ может смешиваться посимвольно.

Вызов вулс ш!1Ь зй!!о () до первой операции с потоками ввода/вывода при выполнении программы гарантирует, что операции ввода/вывода в стиле С и в стиле С++ будут иметь общие буфера. Вызов зупс их(Ь в111!о (/а(ве) до первой операции с потоками ввода/вывода предотвращает совместное использование буфера и для некоторых реализаций может улучшить характеристики ввода/вывода: 21.8.

Ввод-вывод на С с!азз чоз Ьазе( //.. згайс Ьоо! зунс гвггЬ згч!!о )Ьоо! луис = ггие) 0 получение и установка Вызов зупс ш!!Ь зЫ!о Да!ее) «разъединяет» ввод/вывод в стиле С и С++ и в некоторых реализациях может привести к улучшению производительности. Главное преимущество функций потокового вывода над функциямн рг!п(1 )) из стандартной биолиотекн С заключается в том, что потоки безопасны с точки зрения типов и имеют общий стиль для вывода объектов как встроенных типов, так и типов, определяемых пользователем.

Основные функции вывода С са! р с!а у' )соне! сйа г'/оста !...~; // запись в з!дои! гнг/ргснг/ П! О", соне! суаг" 1оппа!...), //зат!сь в «фаил» (з!г!ои!, згдегги т д) гн! зрг!ну) с)!аг* р, соне! суаг" /вана!, ); // зались в р(0) .. производят форматированный вывод произвольной последовательности аргументов под управлением строки формата/огтай Строка формата содержит два типа объектов — простые символы, которые просто копируются в поток вывода, и спецификации преобразования, каждая нз которых приводит к преобразованию и выводу следующег аргумента. Перед каждой из спецификаций преобразования пишется знак %.

Например: рггаЦ') присутствовало%0 членов, нит о/ тетЬегз) Здесь%ч! сообщает, что с пит о/ тетЬегз (числом членов) нужно обращаться как с целым, и вывести соответствующей последовательностью десяти шых цифр. Если пит о/ тетбегз==127, г!а выходе получим: присутствовало !27 членов.. Набор спецификаций преобразования очень широк и обеспечивает высокую степень гибкости. После % может стоять: необязательный минус, который сообгцает о выравнивании преобразованного ш|ачепия влево в указанном поле; необязательный плюс, который указывает, что перед значением типа со знаком всегда должен стоять + или —; 0 необязательный ноль, который сообц1ает, что лидирующие нули используются для заполнения численного значения Если установлена спецификация — (минус) или точность, данный 0 игнорируется; !! необязательный знак чс, указывающий, что; числа с плавающей точкой будут выводиться с десятичной точкой, даже если после точки идут одни нули; будут выводиться неаначащие нули;перед восьмеричными числами будет выводиться О, а перед шестнадцатеричными — Ох или ОХ; необяаательная строка цифр, определяющая ширину поля; сели преобразованное число имеет меньше цифр, чем умещается в поле, то поле будет дополнено пробеламн слева (или справа, если указан признак выравнивания вправо); если строка начинается с нуля, то вместо пробелов поле заполняется нулями; необязательная точка, которая служит для отделения ширины поля от следующей строки цифр; необязательная строка цифр, которая определяет точность, указывая, сколько цифр выводить после точки для преобразований е и /; или максимальное число выводимых цифр; 720 Глава 21.

Потоки ширина поля или точность может задаваться ', а не строкой цифр. В этом случае ширину строки или точность указывает целочисленный аргумент; Ь необязательный символ Ь, указывающий, что следующее с1, о, х или и относится к,целочисленному аргументу типа зйог1; 1 необязательный символ 1, указывающий, что следующее с1, о, хили и относится к целочисленному аргументу типа 1опя; Ж указывает, что следует вывывести символ%; никаких аргументов не используется; с символ, указывающий тип преобразования, которое нужно применить. Символы преобразования и их значения таковы: с1 Целочисленный аргумент преобразуется в десятичный вид; Целочисленный аргумент преобразуется в десятичный вид; о Целочисленный аргумент преобразуется в восьмеричный вид; х Целочисленный аргумент преобразуется в шестнадцатеричный вид; Х Целочисленный аргумент преобразуется в шестнадцатеричный вид; Аргумент типаЯоа1 илн ОоиЫе преобразуется в десятичный вид [-1сЫИ.йЫ, где количество а' после десятичной точки равно точности, указанной для данного аргумента.

Характеристики

Тип файла
DJVU-файл
Размер
10,02 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6361
Авторов
на СтудИзбе
310
Средний доход
с одного платного файла
Обучение Подробнее