Главная » Просмотр файлов » Г. Шилдт - С# 3.0 Полное руководство. 2010

Г. Шилдт - С# 3.0 Полное руководство. 2010 (1160798), страница 85

Файл №1160798 Г. Шилдт - С# 3.0 Полное руководство. 2010 (Г. Шилдт - С# 3.0 Полное руководство. 2010) 85 страницаГ. Шилдт - С# 3.0 Полное руководство. 2010 (1160798) страница 852019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Для чтения и записи двоичных значений встроенных в С№ типов данных служат классы потоков Вфпагупеайег и Вфпагуиг1Сег. Используя эти потоки, следует иметь в виду, что данные считываются и записываются во внутреннем двоичном формате, а не в удобочитаемой текстовой форме. Класс Въиаюумт~~еа Класс н1пагунгфсег служит оболочкой, в которую заключается байтовый поток, управляющий выводом двоичных данных.

Ниже приведен наиболее часто употребляемый конструктор этого класса. 81пагуиг1гег (зсгевш поток вывода) где поток вывода обозначает поток, в который выводятся записываемые данные. Для записи в выходной файл в качестве параметра поток вывода может быть указан объект, создаваемый средствами класса р11езсгеюв. Если поток вывода оказывается пустым, то генерируется исключение йгдцшепбиц11нхсерС1ОП. А если поток вывода не был открыт для записи данных, то генерируется исключение йг1)цшепгнхсерг1ОП. 440 часть ), язык с№ В классе Вгпагуигг ге г определены методы, предназначенные для записи данных всех встроенных в С№ типов.

Некоторые из этих методов перечислены в табл. 14.5. Обратите внимание на то, что строковые данные типа ягг1пп записываются во внутреннем формате с указанием длины строки. Кроме того, в классе В1пагуиггйег определены стандартные методы с1ояе () и Г1цяй (), действующие аналогично описанному выше. Таблица 14.б. Наиболее употребительные методы, опруделениые в классе В1пагунг1сег Метод Описание чогк) иг1ге (яьуге кв1) Записывает значение типа яъусе со знаком чагс Иггсе (Ьусе ка1) Записывает значение типа ьуге без знака чогк( иг1ге (ьусе [] Ьпг) записывает массив значений типа ьуге чоха иггге (яйогг та1) записывает целочисленное значение типа яйогг (короткое целое) чоха Иггсе(ияйогс ка1) чо1к) иггге(11оаг та1) чогс Иг1се [Поийге ка1) но1П Иггсе(сйаг ка1) Записывает символ чо1к) иг1ге (сйаг [] Ьиг) Записывает массив символов тоьб Иг1се(ясггпс ка1) Класс Вллагуйеайег Класс в1пагунеаг[ег служит оболочкой, в которую заключается байтовый поток, управляющий вводом двоичных данных.

Ниже приведен наиболее часто употребляемый конструктор этого класса. В1пагупеяк)ег(зсгеаи поток ввода) где поток ввода обозначает поток, из которого вводятся считываемые данные. Для чтения из входного файла в качестве параметра поток ввода может быть указан объект, создаваемый средствами класса у11еясгеаьг Если поток ввода не был открыт для чтения данных или оказался недоступным по иным причинам, то генерируется исключение Агдппепйкхсерй1оп.

В классе В1пагунеаг)ег определены методы, предназначенные для чтения данных всех встроенных в С№ типов. Некоторые из этих методов перечислены в табл. 14.6. Следует, однако, иметь в виду, что в методе Веаг[зсг1пя () считывается строка, хранящаяся во чогк( Иггсе(гпс ка1) чо1к) Иггсе(цгпс ка1) тога иггге(1опо та1) чо1к) Иггсе(и1опс кв1) Записывает целочисленное значение типа ияйогг (короткое целое без знака) Записывает целочисленное значение типа гпг ЗаПИСЫВаЕт ЦЕЛОЧИСЛЕННОЕ ЗНаЧЕНИЕ тИПа п1пс (ЦЕЛОЕ бвя ЗНаКа) Записывает целочисленное значение типа 1опд (длинное целое) Записывает целочисленное значение типа пгопч (длинное целое без знака) Записывает значение типа ноас (с плавающей точкой одинарной точности) Записывает значение типа попьге (с плавающей точкой двойной точности) Записывает строковое значение типа ягггпгъ ПРЕДСтавлЕнное ео внутреннем формате с указанием длины строки Глава 14.

Применение средств ввода-внвода 441 внутреннем формате с указанием ее длины. Все методы данного класса генерируют ис- ключение 1СВхсерсуоп, если возникает ошибка ввода. Кроме того, могут быть сгенери- рованы и другие исключения. Таблица 14.6. Наиболее употребительные метода(, определенные а классе В1пакунеас)ек Описание Ьоо1 Кеес(ноо1еап() ьусе кеес(нусе() яьу1е аеас(януса() Считывает значение логического типа ьоо1 Считывает значение типа ьусе Считывает значение типа яьусе ьусе[] аеас(вусея (1пс пои) считывает количество ппт байтов и возвращает их в виде массива снях Кеаоопаг() Считывает значение типа сьаг сьяг [] нвяосьягя (1пс пои) Считывает количество пшп символов и возвращает их в виде массива В классе Вдпагунгуьег ОПРеделены также тРи пРиведенных ниже ваРианта метода неас( () .

Метод Описание хпС Неас1() дпс неяс)(ьусе(] ьцг делает попытку прочитать количество пои байтов в массив ьод на1пс оугяяс, зпс пия) чиная с элемента ьиг[оггяяс], и возвращает количество успешно считанных байтов зпс неяс((спас [] юг, делает попытку прочитать количество пикс символов в массив ьид 1пс оггяес, 1пс поя) начиная с элемента ьпг(оггяяс), и возвращает количество успешно считанных символов При неудачном исходе операции чтения эти методы генерируют исключение 10ехсерс1оп.

Кроме того, в классе В1пагунг1сег определен стандартный метод С1ояе () . Соиьге НеяоооиЬ1е () Е1оаС Неанэзпд1е() яьогС аеас)тпС16() зпС Неяс(1пС32() 1опп аеас(1пС64() ияьосС Неасю1пС16() сдпС Неасш1пС32 () и1опо аеас)С1пС64() яСгзпо Неаббьг1пды Считывает значение типа с(оиь1е Считывает значение типа 11оас Считывает значение типа яьогс Считывает значение типа зпс Считывает значение типа 1опд Считывает значение типа ояьогс. Считывает значение типа пдпс Считывает значение типа о1опст Считывает значение типа ясс1пщ ПРЕДСтаВЛЕнноЕ во внутрЕн- нем двоичном формате с указанием длины строки.

Этот метод следует испольэовать для считывания строки, которая была за- писана средствами класса н1пагунс1сес Возвращает целочисленное представление следующего доступного символа из вызывающего потока ввода. При обнаружении конца фай- ла возвращает значение -1 442 Часть (. Язык С» Демонстрирование двоичного ввода-вывода Ниже приведен пример программы, в котором демонстрируется применение классов В1пагуиеабег и Вфпагуигфгег для двоичного ввода-вывода. В этой программе в файл записываются и считываются обратно данные самых разных типов.

// Записать двоичные данные, а затем считать их обратно. пя1пд Буяпепп пя1пд яуясеш.тот с1аяя Еиоака ( ясак»с чогб мвтп() ( В1пагуиг1гег багаопьт Вгпагуаеабег бапатпт гпг 1 10) ЕОпЬ1е б = 1023.567 Ьоо1 Ь = Споет яггтпд ягг = "Зто тест"; спу ( багаопь = пен В1пагуиг1сег(пен Е11езсгеаш("сеяьааса", р11емобе.сгеасе))т сагсп(1ОЕхсерг1оп ехс) ( Сопяо1е.Иг1геп»пе("Ие удается открыть файл для вывода")т Сопяо1е.иг1гепгпе(ехс.Мезяаде); геспгпт ) // Записать данные в файл.

сгу ( Сопяо1е.Иг1гет»пе("Запись " + 1); басаопс.иггсе(1)7 Сопяо1е.игггептпе("Запись " + б); басаопс.иг1се(б)т Сопяо1е.Иг1ге11пе("Запись " ь Ь)' г(апаопп.иг1ге(Ь)г Сопяо1е.Иг1кесгпе("Запись " + 12.2 * 7.4)г багаопг.иг1ге(12.2 * 7.4)т Сопяо1е.игасеп»пе("Запись " Я япг)г басаопс.из»се(ясг)т сапсЬ(1ОЕхсерптоп ехс) ( Сопяо1е.игтсепапе("Ошибка записи в файл"); Сопяо1е.иггкесгпе(ехс.иеяяаде)т ) басаопГ.С1ове()т Сопзо1е.иг1геЬ1пе() // а теперь считать данные. ггу ( бага1п = пен В1пагуаеабег(пен У11езсгеаш("Гевсбаса", Е11еиобе.ореп))т сагсп(10Ехсерс1оп ехс) ( Сопяо1е.иг1се11пе("Не удается открыть файл для ввода"); Сопяо1е.Иг1сесгпе(ехс.меззаое)т гесигпт ггу ( 1 = баса1п.аеаб1пс32()т Сопво1е.иг1сеЬ1пе("Чтение " + 1); б = баса1п.аеабпопЬ1е(); Сопво1е.Иггсетапе("Чтение " + б); Ь = баса1п.иеабВоо1еап(): Сопво1е.иг1гет апе ( "Чтение " т Ь) т б = баса1п.аеабпопЬ1е()т Сопяо1е.иг1ге11пе("Чтение " в б)т вгг = бага1п.аеабзгг1пч() т Сопяо1е.Игггетапе("Чтение " т зсг)т ) сассп(10Ехсерсгоп ехс) ( Сопяо1е.иггсе11пе("Ошибка чтения ив файла" ); Сопяо1е.иггсеЬгпе(ехс.Мевяасе)т баса1п.

С1ове (); ) ) Вот к какому результату приводит выполнение этой программы: Запись Запись Запись Запись Запись Чтение Чтение Чтение Чтение Чтение 10 1023.56 Тгпе 90.28 Зто тест 10 1023.56 Тгпе 90.28 Зто тест Глава 14. Применение средств ввода-вывода 443 444 Часть!, язык С» Если просмотреть содержимое файла севсбаса, который получается при выполнении атой программы, то можно обнаружить„что ои содержит данные в двоичной, а ие в удобочитаемой текстовой форме. Далее следует более практический пример, демонстрирующий, насколько зффективиым может быть двоичный ввод-вывод. Для учета каждого предмета хранения иа складе в приведенной ниже программе сначала запоминается наименование предмета, имеющееся в наличии, количество и стоимость, а затем пользователю предлагается ввести наименование предмета, чтобы найти его в базе данных, Если предмет найден, отображаются сведения о его запасах иа складе.

/* Использовать классы 81пагуаеабег и Вгпагуигггег для реализации простой программы учета товарных запасов. */ ця1пч Зуягелц ця1пч зуягею.ГО; с1аяя гпъ.епгогу ( ягаггс чогб Ма1п() ( В1пагуиггсег басаоцст В1пагуаеабег багагпт ягг1пп бгет; // наименование предмета 1пС опнапгй // имеющееся в наличии количество боцю1е сояст // цена сгу ( багаоцг = пен В1пагуигггег(пен 811езггеае("гпчепгогу.баг", Г11еиобе.сгеаге))т сагсн(ГОВхсерг1оп ехс) ( Сопяо1е.иггге( впе("Не удается открыть файл " + "товарных запасов для вывода"); Сопяо1е.Иг1гепьпе(ехс.иеяяаде)т гегцгп) ) // Записать данные о товарных запасах в файл. сгу ( багаоцг.иг1ге("Молотки")т багасцг.иггСе(18)т басаоцг.иг1се(3.95)т багаоцС.Иггге("Отвертки")т басаоцс.иг1се(18)т багаоцС.Иггге(1.50)т басаоцс.иггсе("плоскогубцы")г багаоцС.Иггге(5)т басаоцс.иггсе(4.95)т багаоцС.Иггге("Пилы")т багаоцг.иггге(8)т Глава )4.

Применение средств ввода-вывода 446 баСабпС.ИгаСе(Я.ЯЯ)) ) сагой (1ОЕхсергаоп ехс) ( Сопяо1е.шгагесапе("Ошибка записи в файл товарных запасов" ); Сопяо1е.игаге11пе(ехс.Меняле)т ) багабпС.С1ояе()т Сопяо1е.шг1сеЕ1пе()т // й теперь открыть файл товарных запасов // для чтения. сгу ( бага1п = пен В1пагунеабег(пен у11еясгеаш("1пчепсогу.бас", У11емобе.брел)); сагсЬ(1ОЕхсергаоп ехс) ( Сопяо1е.ИгасеВапе("Не удается открыть файл " + "товарных запасов для ввода"); Сопяо1е.ыг1ге11пе(ехс.меяяаое)) гегогп; // Найти предмет, введенный пользователем.

Сопяо1е.шг1Се("Введите наименование для поиска: "); ягг1пд илаг = Сопяо1е.аеабс1пе()т Сопяо1е.шг1Сесспе()) сгу ( Гог(тт) ( // Читать данные о предмете хранения. асею = баса1п.неабясг1пч()т опйапб = с)аса1п.аеаб1пС32()т сояг = баса1п .НеабВопЬ1е () т // Проверить, совпадает ли он с запрашиваемым // предметом. Если совпадает, то отобразить // сведения о нем. 11(1Сеш.сошрагето(ннаг) == О) ( сопяо1е.иг1сеьапе(гсеш + ": " + опнапб + " штук в наличии. "Цена: (О:С) за штуку", сояг); сопяо1е.иг1сееапе("Общая стоимость по " + "наименованию <(О)>: (1:С).", асею, сояс * опйапб)) Ьгеант ) ) ) сагой(ЕпбОГЯСгеашЕхсергаоп) ( Сопяо1е.иг1се11пе("Предмет не найден."); ) 446 часть ), язык Сз сассл (1ОЕхсерсгоп ехс) ( Сопзо1е.игггеЬгпе("Ошибка чтения из файла товарных запасов" ) Сопзо1е.иггсеЬгпе(ехс.иеззаче)) ) басагп.С1озе()7 Выполнение этой программы может привести, например, к следующему результату: Введите наименование для поиска: Отвертки Отвертки: 18 штук в наличии.

Цена: 51.50 за штуку. Общая стоимость по наименованию <Отвертки>: 027.00. Обратите внимание иа то, что сведения о товарных запасах сохраняются в этой программе в двоичном формате, а ие в удобной для чтения текстовой форме. Благодаря этому обработка числовых данных может выполняться без предварительного их преобразования из текстовой формы. Обратите также внимание на то, как в этой программе обнаруживается конец файла. Методы двоичного ввода генерируют исключение ЕпбОГЯСгеащкхсергаоп по достижении конца потока, и поэтому файл читается до тех пор, пока не будет найден искомый предмет или сгенерировано данное исключение.

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

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

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

Г. Шилдт - С# 3.0 Полное руководство
C_sharp_3TCR_code
Apndx.lst
Chap2.lst
Chap3.lst
Chap4.lst
Chap5.lst
Chap6.lst
Chap7.lst
Chap8.lst
Chap9.lst
Chap10.lst
Chap11.lst
Chap12.lst
Chap13.lst
Chap14.lst
Chap15.lst
Chap16.lst
Chap17.lst
Chap18.lst
Chap19.lst
Chap20.lst
Chap21.lst
Chap22.lst
Chap23.lst
Chap24.lst
Chap25.lst
Chap26.lst
Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6461
Авторов
на СтудИзбе
304
Средний доход
с одного платного файла
Обучение Подробнее