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

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

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

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

981 Г4. Стандартные фвсеты Средства, предлагаемые топеурипс1, в основном предназначены для использования разработчиками реализаций фасетов топеу ри! и топеуае1 (9,ГА.З.2, 8 ГА.З.З). Функции-члены г!ес(та! ро(пЯ, (йоивапг)в вер(! и Кгоир!пЯ ведут себя подобно своим собратьям из питрипс1. Члены сигг вугпбоф, ров(1(ое в/дп(! и леда((ое в(Кп(! возвращают строку, используемую в качестве денежного символа (например, 3, У Лсг ЭКК), знак плюс и минус соответственно. Если аргумент шаблона !п1егла1!она!равен йие, член !л!! тоже окажется равен 1гие, и будет использоваться «международное» обозначение денежного символа. Так называемое «международное» обозначение является четырехсимвольной строкой.

Например; "()511" "ЭКК *ЕИ~ * Последним символом является завершающий ноль, Стандарт (ЗΠ— 4217 определяе~ трехбуквенный идентификатор валюты. Когда!л1егпа1(опа! есть (а!ве, можно использовать местные денежные символы, такие как $, Х и К Объект типа ра11егп (образец), возвращаемый ров )оста Я или лед ~оппаЯ, состоит из четырех частей (рай), определяюн1их последовательность, в которой озображаются числовое значение, денежный символ, символ знака и заполнитель.

Большинство форматов тривиальным образом задаются с использованием этого просто шаблона. Например: Прелставление отрицательного числа с использованием скобок достигается, когда пела!!пе в)Кп!1 возвращает строку, содержащую два символа (1. Первый символ строки знака помещается в позицию, где в образце формата находится в!дп, а остальная часть строки знака помещастся после всех остальных частей образца. Наиболее часто это средство применяется для представления отрицательных чисел в виде значения, заключенного в скобки, как это принято в финансовых кругах, но возможно и другое использование. Например: -3123.45 // !идп, зутЬо1, аа)ае, попе/, где пеуа1гое иуп() возвращает"-' '$123 45 чепуха // (згуп, зутуо1, оа)ае, попе), гое пеуаиое иуп() возвраа1ает * «епуха' Каждое из значений в1йп, па!ие н зутЬо! должно появиться в образце ровно один раз.

Оставшееся значение может быть либо врасе, либо попе. В том месте, где в образце расположен юрасе, в представлении значения появится по крайней мере олин заполнитель. а возможно их будет несколько. Там же, где находится попе (но не в конце образца), в представлении появится ноль или более заполнителей. Обратите внимание, что эти строгие правила запрещают такие на первый взгляд разумные образцы, как: раиегп ра( = ( з(уп, оа1ие, попе, попе й // ошавка: опкутгтвует зутЬо! +3 123.45 З»123.45 $125.45 $125.45— — 123 45 РКК 15125 45! !125.45)ЖК) // (з)дп, зутЬо1, враге, оа)ае/, где роз(11ое яуп Ц возвращает // (зутьо1, ядп, аа1ае, попе), гдерояиое туп() возвраа(ает'4" /! /зутьо1, ядп, оа1пе, попе(, еде розигое аул() возвращает "" /! (зутуо!, оа!ае, ядп, попе) // (ядп, оа1пе, эросе, зутуо1) ///з(дп, зутЬо1, оа)ае, попе), где пеуа1(ое зу1п() возвращает () // (яуп,оа!пе,хутуа),попе), где пеуа1(ое з(уп О возвращает '()' Приложение Г Локализация 982 Фу1лкцлля3гас й!д!1к() задает, где помещается йеспла(ро(л1().

Часто денелкллые суммы представляются в самых мелких денежных единицах (9 ГА.З). Эти единицы обычно в сто раз меньше основных (например, цент составляет одну сотую доллара), поэтомуугас й!у!1к(), как правило, возвращает 2. Приведем пример простого формата, оформленного в виде фасета: с!аяк Му топеу 1о риЫгс топеурипс1<сяаг, 1гие> ( риЫи: ехр!!суМу топеу !о(ксее 1г= О); топеурипс1<сЬаг, ггие>(г) () сааг 1урейо йесгта! ро!п1() сопк1(ге!игл .';) сяаг 1уредо 1Ьоияапйя кер() сопя1(ге1игп,';) я1г!пу йо угоир!пу() сопя1 ( ге!игл ''Л003лл003л,003"; ) клг!пу 1урейо сигг кутЬо!() сопя1(ге!игл "(130;) к!гту 1урейо рок!1!ое я!уп() сопя1 (ге1игп";) к!гйпу луре с1о пера!!ое к!уп() сопя1( ге1игп '()'; ) т1 йо Ггас й!у!1к() сопя1 ( гелчгп 2, ) // дее цифра после десяпщчной точки ралсегл йо роя Госта!() сопя! ( я1анс ранегп ра1 = ( к!уп, яутЬо1, оа1ие, попе ); ге!игл ра1; раиел и йо пед ~о~ та1() сопя1 я1ансрапегп ра1= (Ыдп, кутЬо!, оа1ие, попе); ге1игп ра1 Этот фасет используется в операциях ввода и вывода Молву, определенных в 9 ГАл3.2 и 9 ГА.З.З.

Имеется и булате версия (9 ГА, 9 ГАА) топеурипсб летр!а1е <с!аяк С!л, Ьоо! 1п1! = Га!ке> с!аяя $01стопеурипс! Ьупате: риЫ!с топеурипс1<СЬ Ьпу> ( р ... *!' ); Г.4.3.2. Вывод денежных значений Фасет плолеу ри! записывает денежные суммы в соответствии с форматом, заданным топеурипс1. В частности, топеу ри1 предоставляет функции ри1(), которые помещают подходящим образом отформатллроваллное строковое представление в буфер потока: Оетр!а1е<с!аяк СЬ, с!аяк Оил = омгеатЬиу Негалог<СЬ» с!аяк кийк топеу ри1: риЫ!с кЫ: !оса!е 3асе1 ( риЫ!с гурейе3 СЬ сЬаг 1уре; гурейея" Ои1 !1ег 1уре, 1урейе3 Ьак!с клг!ау<С!л> к1г!пу 1уре, ехр!!с!1 топеу ри1(я)ее 1г= О); 983 Г4.

Стандартные фасеты // поместить значение "о в позицию 'Ь' буфера: ОиЕриЕ(ОиЕ Ь, Ьоо( Еп11, !оя Ьаяей я, СЬ/у1, !опус(оиЫе о) сопя!; Оик риЕ(ОиЕ Ь, Ьоо! Еп11, Еоя Ьакей я, СЬЯ!1, сопк1 к1ппу Еурей и) сопя1; ясагьс!оса(ес!дЫ;//идентификалюрфасета Я Г2, б ГЗ, З" ГЛ.!) ргоЕесЕе«Е: -топеу риЕ(); //виртуальные'с!о функции" Если з Г4.!) Аргументы Ь, я,Я11 и о используются также, как и лля риЕ()-функций фасета пит ри1 (9 ГА.2.2). Аргумент !п1! определяет, используется ли четырехсимвольный «межлунаролныйь денежный символ пли «местныйь символ (9 ГА.3.1).

Располагая топеу ри1, мы можем определить оператор вывода лля Мопед Я Г.4.3) следующим образом: оя1геатй орега1ог«(оя1геатй я, Мопсу т) ( окЕгеатькепЕгу уиагс((к) //см. з 2!.йЯ у()уиаг«Е) ге1игп к; Еу( соля1 топеури1<сбаг>й Г= ике /асе1<топеури1<сбаг> (к.уе1!ос()). (/(т==ягаЕ!с сая1<!опу доиЫе>(т) ( // и можно лредставшль как Голд доиИе аЯриЕ(к Егие, я, я.Ге1!(), т)/а!!ед()) к.яе1яга1е(!ок Ьаяесбаь(ЫЕ) е1яе ( окЕг1пуякгеат и; о«т; // преобразование в строковое представление (Драк(я, 1гие, к, к/)!!(), о.ягг()) Ха/!еьЕ()) я яе1я1а1е(соя Ьаяе: ЬадЬЕЕ), ) са1сЬ(.,) ( Ьапд!е !оексерйоп(я), // см.

к Г 4.2.2 ) ге!игл я; Если лля точного представления денежных величин разрядов !опд с(оиЫе ве хватает, я преобразовываю значение в его строковое представление и вывожу его функцией риЕ(), принимающей строковый аргумент. Г.4.3.3. Ввод денежных значений СРасет топеу уе1 читает денежные значения в соответствии с форматом, заданным топеурипс1. В частности, топеууе1 предоставляет функции деЕ(), которые извлекают подходящим образом отформатированные символьные представления пз буфера потока: 1етр1а1е <с!аяк СЬ, с!акк/п=й1геатЬи/ ЕЕегаЕог<С!е» с1акя кЕдлтопеу уе1: риЬПс яЕ«Е !оса!е Гасе! ( рибйс.

Еуреде/СЬ сбаг 1уре; Еуреде~/п !1ег 1урс; Приложение Г Локализация 984 1урег(е/Ьая!с з1г/пд«С!ч>запад 1уре; ехр!!си топеу де/(я!зе 1г= О); // нигпаеи (Ь:е) в и с использованиеи привил фар вотирования из я, // гообыи « оо ошибках путеп установки г: 1пдед1п Ь, Еп е, Ьоо!!пг!, !оя Ьакей я, гоя Ьаяе.зозга1ей г, !опдг/оиЫей о) сопя!; 1п дег(!п Ь, 1п е, Ьоо! еа!, гоя Ьаяей я, гоя Ьазеи!ояга1ей г, згппд 1урей и) сопя!; зза1!с !оса!ези(!г!; // ггбенпчификитор фисета (я !.2, я Г.З, у Г.З.! ) рго1есгес!. -топеу де!(); // виртуильньге г(о функч(ии' Гсм.

З Г4.1) ); чп1та!п() ч ( Молву т; чиьг!е(с!п»т) сои! «т « "~п'; ) Вывод этой простой программы должен быть приемлем в качестве ее ввода. Более того, вывод, полученный в результате второго запуска с выводом первого запуска на входе, должен быть идентичен вводу. Оператор ввода для Молву может выглядеть так: /з1геагпй орега1ог»(/з1геатйя, Мопвуй т) ( /з1 еат:леп1гу ди асс!(к); !и (диа г() ггу ( !оз Ьазе.боя1а1е к1а1е = О; гя!геатЬи/ Пега!юг«сяаг> еоя, я1г(адзпп //слг. у 2!.3.8 // все хорошо изе ~асе1«топеу де1< сьаг»(к.дег!ос()) де!(з, еоя, 1гие, к1а1е, згг) фк1а1е==0$з1аге==газ Ьаке:вой!1)( //успгановка значения только при //успегинол~ зггвергиенпи дед) 1опдгпгг=яггзо!(з1гс зб(),0,0); //згг(о!() ели в ф 20.4. ! !Г(еггпо==ЕКЬМч>Е) к1аге(=!оя базе:.~а!!Ы1; е!зе т = г; // установка только ели преобразование в !опд т1 успеигно з.яегк1азе(я1а1ез сагсЬ(..)( /чргумспты Ь, е, я, Я!! н о, используются также, как и де1()-функцияьчгч пит де1 (() ГА.2З).

/чргумент !п1! определяет, будет ли использован «интернациональный» денежный символ пли «местный» (9 Г.гьЗ. (). Корректно определенная парафасетов топеу де1и топеу рц1обеспечитвыводв форме, которая может быть обратно считана без ошибок илп потери информации. Например: 985 Г4, Стандартные фасеты //см. ф С4,2.2 /ланд!е !оехсер дои(з); ге1игп з, ) Здесь использована функпня ее((), которая читает в строку, т, к, чтение в с(оиЫе с последующим преобразованием в 1опд !п1 может привести к потере точности.

Г.4.4. Ввод и вывод дат и времени К сожалению, стандартная библиотека С++ не предоставляет удовлетворительного типа латы. Однако она наследует от стандартной библиотеки С низкоуровневые средства работы с датами н интервалами времени. Эти средства С являются основой для средств С++, позволяющих работать со временем системно-независимым образом. В следующих разделах демонстрируется, каким образом представление дат и времени можно сделать зависимым от локализации. Приводится пример того, как определяемый пользователем тип (Эа1е) может вписаться в среду потоков ввода/вывода (глава 21) н локализаций (лу Г.2). Реализация )ла1е демонстрирует технологии, которые могут оказаться полезными при работе со временем, если у вас нет готового типа Х>а1е.

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

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

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

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