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

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

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

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

В целом эти методы способны генерировать исключение 10Ехсерггоп при появлении ошибки ввода, а некоторые из них — исключения других типов. Особый интерес вызывает метод цеаг(Б1пе (), предназначенный для ввода целой текстовой строки, возвращая ее в виде объекта типа ясг1пд. Этот метод удобен для чтения входных данных, содержащих пробелы. Глава (4. Применение средств ввода-вывода 421 В классе техсигакег определены также варианты методов Иг1се () и Иггсепйпе П, предназначенные для вывода данных всех встроенных типов.

Ниже в качестве примера перечислены лишь некоторые из перегружаемых вариантов этих методов. Описание Метод Выводит значение типа гпг Выводит значение типа поиьте Выводит значение типа ьоо1 типа ягггпд с последующим символом но- чоха Хгьсеьгпе(иьпс ча1) типа и1пг с последующим символом новой чогп Иг1ГеЬгпе (слаг ча1) последующим символом новой строки Все эти методы генерируют исключение 10ехсергаоп при появлении ошибки вывода. Кроме того, в классе Техгнг1гег определены методы С1ояе () и Е1ияп (), приведенные ниже.

чагсия1 чоха С1ояе() чггтиа1 чога Г1иян() Метод г1ияп () организует вывод в физическую среду всех данных, оставшихся в выходном буфере. А метод С1ояе () закрывает поток. Классы Техгйеаг(ег и Техтиг1кег реализуются несколькими классами символьных тютоков, включая и те, что перечислены ниже. Следовательно, в этих классах предоставляются методы и свойства, определенные в классах Техскеаг)ег и ТехГИгусег. Класс потока Описание Предназначен для ввода символов нз байтового потока.

Этот класс является оболочкой для байтового потока ввода Предназначен для вывода символов в байтовый поток. Этот класс является обо- лочкой для байтового потока вывода яггеаваеяйег Зсгеавнг1сег ягггпоаеаоег ясг1пснг1сег Предназначен для ввода символов нз строки Предназначен для вывода символов в строку Двоичные потоки Помимо классов байтовых н символьных потоков, имеются еще два класса двоичных потоков, которые могут служить для непосредственного ввода н вывода двоичных данных — В1пагуйеаг)ег н В1пагуиг1тег. Подробнее о них речь пойдет далее в этой главе, когда дойдет черед до файлового ввода-вывода. А теперь, когда представлена общая структура системы ввода-вывода в С№, отведем оставшуюся часть этой главы более подробному рассмотрению различных частей данной системы, начиная с консольного ввода-вывода.

Консольный ввод-вывод Консольный ввод-вывод осуществляется с помощью стандартных потоков, представленных свойствами Сопяо1е. 1п, Сопяо1е. Оит и Сопяо1е. Еггог. Примеры консольного чо1О Хг1се(1пс ча1) чо1г( Хг1се(г(оиЬЬе чя1) чогб Хггсе(Ьоо1 чя1) чоха ХггсеЬ1пе(ясггпс чя1) Выводит значение вой строки Выводит значение строки Выводит символ с 422 часть (, йзык сз ввода-вывода были представлены еще в главе 2, поэтому ои должен быть вам уже знаком. 'г(ак будет показано ниже, ои обладает и рядом других дополнительных возможностей. Но прежде следует еще раз подчеркнуть, что большинство реальных приложений С(Г ориентированы ие иа консольный ввод-вывод в текстовом виде, а иа графический оконный интерфейс для взаимодействия с пользователем, или же сии представляют собой программный код, используемый иа стороне сервера.

Поэтому часть системы ввода- вывода, связанная с консолью, ие находит широкого практического применения, И хотя программы, ориентированные иа текстовый ввод-вывод, отлично подходят в качестве учебных примеров, коротких сервисных программ или определенного рода программных компонентов, для большинства реальных приложений оии ие годятся. Чтение данных из потока ввода с консоли Поток Сопзо1е. 1п является экземпляром объекта класса техгпеас)ег, и поэтому для доступа к нему могут быть использованы методы и свойства, определенные в классе техснеаг(ег. Но для этой цели чаще все же используются методы, предоставляемые классом Сопзо1е, в котором автоматически организуется чтение данных из потока сопзо1е. 1п. В классе сопзо1е определены три метода ввода. Два первых метода, Неас(() и Неаг(Ыпе (), были доступны еше в версии.)ь)ЕТ Ргатеьуог)г 1.0.

А третий метод, Неаг)кеу (), был добавлен в версию 2.0 этой среды. Для чтения одного символа служит приведенный ниже метод Неаг) () . вгагъс дог Неаг(() Метод Неаг( () возвращает очередной символ, считанный с консоли. Ои ожидает до тех пор, пока пользователь ие нажмет клавишу, а затем возвращает результат. Возвращаемый символ относится к типу ъпг и поэтому должен быть приведен к типу сйаг. Если при вводе возникает ошибка, то метод Неап () возвращает значение -1. Этот метод сгеиерирует исключение 10кхсергдоп при неудачном исходе операции ввода. Ввод с консоли с помощью метода неас( () буферизуется построчно, поэтому пользователь должен нажать клавишу <Епгег>, прежде чем программа получит любой символ, введенный с консоли.

Ниже приведен пример программы, в которой метод неаг( () используется для считываиия символа, введенного с клавиатуры. // Считать символ, введенный с клавиатуры. чз1вс Зувсежо с1авз Кото ( зсас1с чо1о Мадо() ( сват сты сопзо1е.иггсе (" нажмите клавишу, а затем — <ннткнгм "); св = (сЬаг) Солво1е.кеаг(()/ // получить значение типа сваг Сопво1е.кгъсеьдое("Вы нажали клавишу: " + св); Вот, например, к какому результату может привести выполиеиие этой программы: Глава 14.

Применение средств ввода.вывода 423 Нажмите клавишу, а затем — <ЕНТЕН>: С Вы нажали клавишу: С Необходимость буферизировать построчно ввод, осуществляемый с консоли посредством метода неас( (), иногда может быть досадным препятствием. Ведь при нажатии клавиши <Епсег> в поток ввода передается последовательность символов перевода каретки и перевода строки.

Более того, эти символы остаются во входном буфере до тех пор, пока они не будут считаны. Следовательно, в некоторых приложениях приходится удалять эти символы (путем их считывания), прежде чем приступать к следующей операции ввода. Впрочем, для чтения символов, введенных с клавиатуры без построчной буферизации, можно воспользоваться рассматриваемым далее методом Неас)Кеу () . Для считывания строки символов служит приведенный ниже метод неаЖ1пе () .

зтапвс звсдпд аеас(Ъ1пе () Символы считываются методом неапейпе () до тех пор, пока пользователь не нажмет клавишу <Епсег>, а затем этот метод возвращает введенные символы в виде объекта типа зсгспс. Кроме того, он сгенерирует исключение 10ехсерсдоп при неудачном исходе операции ввода. Ниже приведен пример программы, в которой демонстрируется чтение строки из потока Сопзо1е. Хп с помощью метода НеаЖ1пе () . // Ввод с консоли с помошью метода Неас(ьспе(). пз1по Бузтешт с1азз Кеас)БСс1пд ( зтаС1с тото Маьп() ( згг1пя зСг' Сопзо1е.игьтевдпе("Введите несколько символов.") зег = Сопзо1е.неаатвпе()т Сопао1е.иг1сеъспе("Вы ввели: " + зСг); ) Выполнение этой программы может привести, например, к следующему результату: Введите несколько символов.

Это просто тест. Вы ввели: Это просто тест. Итак, для чтения данных из потока Сопзо1е. 1п проще всего воспольэоваться Мстодами класса Сопзо1е. Но для этой цели можно обратиться и к методам базового класса ТехСНеас(ег. В качестве примера ниже приведен переделанный вариант предыдущего Примера программы, в котором используется метод Неат(Ь1пе (), определенный в классе Техеиеас(ег.

// Прочитать введенную с клавка~уды строку // непосредственно из потока Сопзо1е.1п. озспд Бузсеш; с1азз Реас(сьасзэ ( зеаС1с чоад На1п() ( 424 часть!. яаыс сз зсгдпч зсс; Соозо1з.нг1геъсое("Введите несколько символов.")! згг = Сопзо1з.тп.кеас(ь1ое()с // вызвать метод // Кеацъазе() класса тзхгкеас(ег Сопяо1е.нгхгеьдое("Вы ввели: " + згг); ) Обратите внимание на то, что метод Кеас(ь1пе () теперь вызывается непосредственно для потока Сопяо1е. 1п. Поэтому если требуется доступ к методам, определенным в классе с ехспеас)ег, который является базовым для потока Сопзо1е. 1п, то подобные методы вызываются так, как было показано в приведенном выше примере. Применение метода Ееас3Кеу () Начиная с версии 2.0 в состав среды .НЕТ Егашесзог)с был включен метод, определяемый в классе Сопзо1е и позволяющий непосредственно считывать отдельно введенные с клавиатуры символы без построчной буферизации.

Этот метод нззывается Кеас(кеу () . При нажатии клавиши метод Кеас(кеу () немедленно возвращает введенный с клавиатуры символ. И в этом случае пользователю уже не нужно нажимать дополнительно клавишу <Епсег>. Таким образом, метод кеас(Кеу () позволяет считывать и обрабатывать ввод с клавиатуры в реальном масштабе времени. Ниже приведены две формы объявления метода Кеас(кеу () .

зьаС1с Сопзо1екеу1псо аеас(кзу() зсасас сопзо1зкзу1ого квас)кзу(ьоо1 поп1зр1ау) В первой форме данного метода ожидается нажатие клавиши. Когда оно происходит, метод возвращает введенный с клавиатуры символ и выводит его на экран. Во второй форме также ожидается нажатие клавиши, и затем возвращается введенный с клавиатуры символ. Но если значение параметра поп1зр1ау равно Сгое, то введенный символ не отображается. А если значение параметра поп1зр1ау равно 1а1зе, то введенный символ отображается. Метод Пеас)кеу() возвращает информацию о нажатии клавиши в объекте типа сопзо1екеу1пго, который представляет собой структуру, состоящую из приведенных ниже свойств, доступных только для чтения. сьаг КеуСЬаг Сопзо1зКеу Кеу Соозо1еиос(111егз Мос)111згз Свойство КеуСЛаг содержит эквивалент спаг введенного с клавиатуры символа, свойство Кеу — значение из перечисления Сопзо1еКеу всех клавиш на клавиатуре, а свойство Мос(111 е гя — описание одной из модифицирующих клавиш (<А) С>, <Сгг(> или <БЬЖ>), которые были нажаты, если это действительно имело место, при формировании ввода с клавиатуры.

Эти модифицирующие клавиши представлены в перечислении Сопзо1емос(111егз следующими значениями: Сопгго1, БЬ111 и А1Ш В свойстве мог)111егз может присутствовать несколько значений нажатых модифицирующих клавиш. Главное преимущество метода Кеас(кеу () заключается в том, что он предоставляет средства для организации ввода с клавиатуры в диалоговом режиме, поскольку этот ввод не буферизуется построчно. Для того чтобы продемонстрировать данный метод в действии, ниже приведен соответствующий пример программы. // Считать символы, введенные с консоли, // используя метод аеас(кеу().

пзтпо Бузвешт с1азз Неаокеуз ( звавтс чоьд Матп() ( Сопзо1екеутпхо Хеургеззт Сопзо1е.Иг1Сетфпе("Введите несколько символов, "а по окончании — <О>.")) с(о ( Кеуртезз = Сопзо1е.веаОКеу()т // считать данные о нажатых клавишах Сопзо1е.нт1веъ1пе(" Вы нажали клавишу: Хеургезз.кеуснат); // Проверить нажатие модифицирующих клавиш. 11((сопзо1еио<(1Т1етз.А1С а Хеуртезз.ио01Т1етз) != О) Сопзо1е.нх1сеътпе("Нажата клавиша <А1С>.")т 11((сопзо1еиоНШехз.Сопвто1 з Кеурхезз.мооьдьехз) != О) сопзо1е.игтсевдпе("нажата клавиша <сопссо1>.")т 11((сопзо1емос(шегз.зь1йс з хеуртезз.мостдьетз) != О] Сопзо1е.нт1хеъ1пе("Нажата клавиша <БЬ1тз>."); ) нЬ11е(хеурхезз.КеуСЬат != 'П')) ) Вот, например, к какому результату может привести выполнение этой программы: а по окончании — <О>. Как следует из приведенного выше результата, всякий раз, когда нажимается клавиша, метод Неа<(кеу() немедленно возвращает введенный с клавиатуры символ.

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

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