Читаем C# 4.0: полное руководство полностью

Метод Read() возвращает очередной символ, считанный с консоли. Он ожидает до тех пор, пока пользователь не нажмет клавишу, а затем возвращает результат. Возвращаемый символ относится к типу int и поэтому должен быть приведен к типу char. Если при вводе возникает ошибка, то метод Read() возвращает значение -1. Этот метод сгенерирует исключение IOException при неудачном исходе операции ввода. Ввод с консоли с помощью метода Read() буферизуется построчно, поэтому пользователь должен нажать клавишу , прежде чем программа получит любой символ, введенный с консоли.

Ниже приведен пример программы, в которой метод Read() используется для считывания символа, введенного с клавиатуры.

// Считать символ, введенный с клавиатуры.

using System;

class KbIn {

  static void Main() {

    char ch;

    Console.Write("Нажмите клавишу, а затем — : ");

    ch = (char) Console.Read(); // получить значение типа char

    Console.WriteLine("Вы нажали клавишу: " + ch) ;

  }

}

Вот, например, к какому результату может привести выполнение этой программы.

Нажмите клавишу, а затем — : t

Вы нажали клавишу: t

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

static string ReadLine()

Символы считываются методом ReadLine() до тех пор, пока пользователь не нажмет клавишу , а затем этот метод возвращает введенные символы в виде объекта типа string. Кроме того, он сгенерирует исключение IOException при неудачном исходе операции ввода.

Ниже приведен пример программы, в которой демонстрируется чтение строки из потока Console.In с помощью метода ReadLine().

// Ввод с консоли с помощью метода ReadLine().

using System;

class ReadString {

  static void Main() {

    string str;

    Console.WriteLine("Введите несколько символов.");

    str = Console.ReadLine();

    Console.WriteLine("Вы ввели: " + str);

  }

}

Выполнение этой программы может привести, например, к следующему результату.

Введите несколько символов.

Это просто тест.

Вы ввели: Это просто тест.

Итак, для чтения данных из потока Console.In проще всего воспользоваться методами класса Console. Но для этой цели можно обратиться и к методам базового класса TextReader. В качестве примера ниже приведен переделанный вариант предыдущего примера программы, в котором используется метод ReadLine(), определенный в классе TextReader.

// Прочитать введенную с клавиатуры строку

// непосредственно из потока Console.In.

using System;

class ReadChars2 {

  static void Main() {

    string str;

    Console.WriteLine("Введите несколько символов.");

    str = Console.In.ReadLine(); // вызвать метод ReadLine()

          // класса TextReader

    Console.WriteLine("Вы ввели: " + str);

  }

}

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных