Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Консольный ввод-вывод данных






C#-программы в пространстве имен System могут использовать:

• стандартный входной поток Console.In, в который вводится информация с клавиатуры;

• стандартный выходной поток Console.Out, в который выводится информация, направляемая в консоль (на экран);

• стандартный выходной поток Console.Error сообщений об ошибках, в который выводится информация, направляемая в консоль (на экран).

 

Console.In, Console.Out и Console.Error – это свойства класса Console, значением которых являются соответствующие символьные потоки (объекты).

 

Примеры ввода-вывода:

 

Console.ReadLine(…) и Console.WriteLine(…).

 

Console.Out и Console.Error — объекты типа TextWriter. Поток Console.In - объект типа TextReader.

 

Для доступа к этим потокам можно использовать методы и свойства, определенные в классах TextWriter и TextReader соответственно. Однако это целесообразно делать только для потока Console.Error:

 

public static void Main()

{

int a, b=7, c=0;

 

try

{

a = b / c; // Деление на нуль: генерируем исключение.

}

 

catch (DivideByZeroException exc)

{

Console.Error.WriteLine (exc.Message);

}

}

 

У стандартных потоков можно, не переделывая программу, менять источник и приемник информации (т.е. перенаправлять поток).

 

Перенаправить стандартный поток можно двумя способами.

1) средствами Windows (внешними);

2) из программы (внутренними средствами) с помощью методов SetIn(), SetOut() и SetError(), которые являются членами класса Console.

 

Способ 1. Средствами Windows все стандартные потоки, кроме потока ошибок, могут быть перенаправлены при запуске программы (то есть временно) на любое совместимое устройство ввода-вывода.

 

Для этого при запуске программы из командной строки можно использовать оператор " < ", чтобы перенаправить поток Console.In и операторы " > " и " > > " для перенаправления потока Console.Out.

 

Примеры.

example.exe > NewFile.txt

example.exe > > OldFile.txt

example.exe < OldFile.txt

example.exe > NewFile.txt < OldFile.txt

 

Способ 2. Перенаправление осуществляется с помощью методов SetIn(), SetOut() и SetError(), которые являются членами класса Console:

 

Формат:

static void SetIn (TextReader input)

static void SetOut (TextWriter output)

static void SetError (TextWriter output)

 

Такое перенаправление имеет постоянное действие и его нельзя отменить или повторно перенаправить при запуске программы.

 

Пример.

 

using System;

using System.IO;

 

class Redirect

{

public static void Main()

{

StreamWriter log_out = new StreamWriter(" C: \\logfile.txt");

 

// Направляем стандартный выходной поток в системный журнал.

Console.SetOut(log_out);

 

Console.WriteLine (" Это начало системного журнала.");

 

for (int i = 0; i < 10; i++) Console.WriteLine(i);

 

Console.WriteLine (" Это конец системного журнала.");

log_out.Close();

}

}

 

Можно указывать любой поток, если он является производным от класса TextReader или TextWriter.

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.