Ввод в си шарп

Ввод в си шарп

Разработка программ на базе 1С, JAVA, C++

C# ввод данных с клавиатуры (Csharp)

Ввод данных в консоль C# (Csharp)

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

Формула программиста

Работая с этим сайтом, Вы даете согласие на использование файлов Cookie.

Класс Console для работы с консолью

Заголовок окна консоли

Ввод-вывод

Наиболее часто используемыми являются методы чтения и записи информации.
Для вывода информации в окно консоли используются два основных метода

  • Write() — для вывода информации без перевода строки;
  • WriteLine() — для вывода информации с переводом строки.

В качестве аргумента этим функциям может передаваться текстовая строка для вывода, а также объект других стандартных типов данных, который по умолчанию будет преобразован к строковому представлению.

Для ввода текстовой информации из окна консоли используются методы

  • ReadLine() , который считывает строку текста из входного потока;
  • Read() – считывает следующий символ из входного потока.

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

Метод ReadKey() возвращает значение символа или нажатой функциональной клавиши, преобразованное к формату структуры ConsoleKeyInfo .
Структура ConsoleKeyInfo , в свою очередь, содержит 3 поля:

  • Key — ключ консоли, представленный текущим ConsoleKeyInfo объекта;
  • KeyChar — знак Юникода, представленный текущим ConsoleKeyInfo объекта;
  • Modifiers — побитовое значение, указывающее на одновременное удержание клавиш Alt, Ctrl, Shift при нажатии клавиши.

По умолчанию нажатая клавиша отображается в окне консоли, но отображение можно отключить, передав функции ReadKey() единственный аргумент с логическим значением true .
Рассмотрим пример вывода в консоль значений считанной клавиши до нажатия клавиши Esc.

namespace MyProgram
<
class Program
<
static void Main( string [] args)
<
Console .Title = "Работа с консолью" ;
ConsoleKeyInfo key;
do
<
key = Console .ReadKey( true );
if ((key.Modifiers & ConsoleModifiers .Alt) != 0)
Console .Write( "Alt + " );
if ((key.Modifiers & ConsoleModifiers .Shift) != 0)
Console .Write( "Shift + " );
if ((key.Modifiers & ConsoleModifiers .Control) != 0)
Console .Write( "Ctrl + " );
Console .WriteLine(key.Key.ToString() + " " + key.KeyChar.ToString());
> while (key.Key != ConsoleKey .Escape);

Цветовое оформление консоли

Для изменения цветового оформления консоли используются следующие свойства класса Console :

  • BackgroundColor — для изменения фона под символами;
  • ForegroundColor — для изменения цвета самих символов.

Для того чтобы изменить цвет фона всего консольного окна необходимо установить требуемое значение параметра BackgroundColor и вызвать метод Clear() — очистка окна консоли.
Следующий пример перебирает и выводит на экран названия всех 16 цветов, используемых при работе с консолью.

Размер окна и буфера консоли

По умолчанию размер окна консоли составляет 80 символов в ширину и 25 символов в высоту. Но этот размер можно изменить с помощью методов

  • WindowWidth – ширина окна консоли;
  • WindowHeight – высота окна консоли.
Читайте также:  Как перенести заметки с андроида на компьютер

Однако кроме размеров окна консоли существует понятие размеров буфера консоли, который задается с помощью свойств

  • BufferWidth – ширина буфера;
  • BufferHeight – высота буфера.

Чтобы узнать значения этих свойств по умолчанию, выведем их в окно консоли

Изменение видимых размеров окна позволяет увеличить или уменьшить его в процессе выполнения программы. Если размер буфера превышает размер видимого окна, то у окна появляются полосы прокрутки, позволяющие просматривать все содержимое буфера.
Например, вывод 100 символов ‘*’ и вертикальной черты ‘|’ в стандартном окне консоли будет выглядеть так:

Если мы увеличим размер буфера для ширины строки, то появится нижняя полоса прокрутки, и весь текст уместится в одну строку.

Аналогичным образом при выводе в окно консоли числа строк, превышающего размер буфера, сохранятся только последние выведенные строки в количестве, равном BufferHeight .

Перемещение курсора в окне консоли

Для перемещения курсора в окне консоли могут использоваться свойства

  • CursorLeft – задает или считывает позицию курсора слева в буферном окне;
  • CursorTop – задает или считывает позицию курсора сверху в буферном окне.

Для задания позиции курсора сразу по двум координатам используется метод SetCursorPosition(left, top) .
Пример вывода символов в различных позициях курсора. Для наглядности между выводом символов введена задержка 200 мс.

using System;
using System.Threading;
namespace MyProgram
<
class Program
<
static void Main( string [] args)
<
int [] x = new int [] < 2, 2, 3, 3, 4, 5, 5, 6, 6,
9, 9, 9, 9, 9,
12, 12, 12, 12, 12, 13, 13, 14, 14, 14,
17, 17, 17, 17, 17, 18, 18, 18, 19, 19,
22, 22, 22, 22, 22, 23, 23, 24, 24, 24, 24, 24,
27, 27, 28, 28, 28, 29, 29,
32, 32, 32, 32, 32, 33, 34, 34, 34, 34, 34,
37, 37, 37, 37, 38, 38, 39, 39, 39, 39,
42, 42, 42, 42, 42, 43, 43, 44, 44, 44,
47, 47, 47, 47, 47, 48, 48, 49>;
int [] y = new int [] < 2, 3, 4, 5, 6, 5, 4, 3, 2,
1, 3, 4, 5, 6,
2, 3, 4, 5, 6, 2, 6, 3, 4, 5,
2, 3, 4, 5, 6, 2, 4, 6, 2, 6,
2, 3, 4, 5, 6, 2, 6, 2, 3, 4, 5, 6,
3, 6, 2, 4, 6, 2, 5,
2, 3, 4, 5, 6, 4, 2, 3, 4, 5, 6,
3, 4, 5, 6, 2, 4, 3, 4, 5, 6,
2, 3, 4, 5, 6, 2, 4, 3, 5, 6,
2, 3, 4, 5, 6, 2, 4, 3>;

Console .BackgroundColor = ConsoleColor .Blue;
Console .ForegroundColor = ConsoleColor .White;
for ( int i=0; i Console .SetCursorPosition(x[i], y[i]);
Console .Write( "*" );
Thread .Sleep(200);
>
Console .ReadKey();
>
>
>

Читайте также:  Gadget media ru sound disappeared android

Потренироваться в использовании функций работы с консолью Вы можете, решая задачи курса Алгоритмика.

Автор: Вставская Елена Владимировна

Функции для консольного ввода и вывода в языке C# существенно отличаются от аналогичных функций языка С++. Таких функций 4, и все они являются членами класса Console . Функции WriteLine и Write обеспечивают вывод на экран и отличаются тем, что функция WriteLine после вывода обеспечивает перевод вывода на новую строку на экране, а функция Write такой перевод не выполняет. Для ввода применяются функции ReadLine и ReadKey . Функция ReadLine обеспечивает ввод строки. Если содержимое строки является числом, то требуется преобразование строки в число. Такое преобразование выполняет функция Parse , которая записывается после точки после имени типа данных. Для обратного перевода в строку текста применяется функция ToString . Функция ReadKey позволяет ввести код нажатой клавиши, и она часто применяется для останова экрана пользователя после вывода на экран. Если эту функцию не записать, то экран быстро исчезнет, не дав возможности посмотреть, что было выведено. Ниже приведен пример.

Console .WriteLine( "Введите число" );

// С переходом на новую строку

a = double .Parse( Console .ReadLine());

// Ввод с преобразованием

Console .WriteLine( "Введите второе число" );

b = int .Parse( Console .ReadLine());

// Ввод с преобразованием

Console .WriteLine( "Сумма <0>и <1>= <2>" , a, b, c);

В кавычках в круглых скобках записывается поясняющий текст и задается формат вывода. Для указания формата применяются пары фигурных скобок, в которых записываются целые числа, указывающие на порядок вывода переменных, имена которых записаны после кавычек. Отсчет начинается от нуля.

В примере показано, что числа в фигурных скобках следуют подряд, что указывают на совпадение порядка вывода элементов с порядком записи имен переменных, список которых приведен после кавычек. Принципиально, изменяя порядок следования чисел в фигурных скобках, не изменяя порядка записи переменных в списке, можно изменять порядок вывода переменных на экран.

В списке переменных для вывода можно применять арифметические выражения. Например, строку вывода из примера выше можно записать и так (в примере выше без использования переменной c ):

Console .WriteLine( "Сумма <0>и <1>= <2>" , a, b, a + b);

Если требуется ввести числа и любые другие элементы в одной строке, в том числе и разнотипные (тип данных var будет описан ниже):

Лекции по языку C# v 2.3

var str = Console .ReadLine();

var result = str.Split( new [ ] < ‘ ‘ , ‘;’ >); foreach ( var a in result)

Console .Write( " <0>" , a);

Метод Split позволяет разбить введенную строку на отдельные элементы. Конструкция new [ ] указывает, что будет сформирован массив, количество элементов которого заранее неизвестно. В фигурных скобках в апострофах указывается символ, являющийся разграничителем между отдельными элементами во вводимой строке. Этот разграничитель может быть не один. В примере в качестве разграничителей заданы пробел и точка с запятой. Такая запись позволяет использовать любой из указанных разграничителей в любой последовательности, как отдельно, так и совместно. Переменная str является неявно типизированной. Тип данных var позволяет объявлять переменные, которые могут быть любого типа. Но особый интерес представляют таблицы, которые состоят из массивов строк. В этом случае переменной типа var является объект класса, которым является отдельная строка, а собственно таблица является массивом строк.

Читайте также:  Цифровое аудио s pdif что это

Управление форматом числовых данных:

При отображении данных на экране или при печати может потребоваться явное указание формы (формата) вывода, например, указание занимаемых позиций для числа при выводе таблиц, положение десятичной точки (запятой), количество цифр после десятичной точки и т. д. Для выполнения вывода в классе Console имеются две функции: WriteLine и Write . Они отличаются тем, что функция WriteLine после вывода заданных данных выполняет переход на новую строку, а функция Write этого не делает. Аргументы этих функций состоят из текстовой строки, заключенной в кавычки, после которой (не обязательно) перечисляются имена переменных для вывода. Если выводятся значения переменных, то в строке для каждой переменной в фигурных скобках указывается номер переменной списке.

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

Вместо имен переменных в списке могут использоваться арифметические выражения. Каждому такому выражению должен соответствовать номер в фигурных скобках.

Пусть объявлены переменные: int a = 3, b = 4;

Тогда операторы вывода

Console .WriteLine( "Примеры вывода" ); // Строка формата выводит только текст

// В строке формата нумерация вывода в скобках и номера в списке совпадают

Console .WriteLine( "Обычный порядок: сначала a = <0>потом b = <1>" , a, b);

// В строке формата повтор номера в скобках, 2-я переменная не выводится

Лекции по языку C# v 2.3

Console .WriteLine( "Повтор вывода a = <0>и a = <0>потом b = <1>" , a, b);

// Нумерация вывода в скобках и номера в списке переменных не совпадают

Console .WriteLine( "Обратный порядок: сначала b = <1>потом a = <0>" , a, b);

// В списке переменных арифметическое выражение

Console .WriteLine( "Если a = <0>и b = <1>, то сумма = <2>" , a, b, a + b);

Для явного указания формата вывода после числа, указывающего на номер переменной для вывода, записывают двоеточие, после которого указывают форматный код. Если требуется жестко задать количество позиций для вывода значения переменной, то сначала после номера переменной записывают запятую, затем количество позиций. Если требуется форматный код, то он записывается после двоеточия, которое следует за количеством позиций для вывода.

Форматный код состоит из латинской буквы (заглавной или строчной), после которой записывается целое число, характеризующее данный формат. Ниже в таблице приведены форматные коды.

Ссылка на основную публикацию
В каких случаях треугольник не существует
Задача Треугольник существует только тогда, когда сумма любых двух его сторон больше третьей. Дано: a , b , c –...
Бесплатные сайты для знакомства и серьезных отношений
Только популярные сайты знакомств в России и на всей территории постсоветского пространства. Badoo Badoo по праву занимает первое место в...
Бесплатные стикеры про любовь
А помните День Валентина, когда яркие сердечки вы дарили друг другу на праздник? Или в этот день вы завидовали всем...
В какое время говорить добрый день
День со скольки до скольки Автор Пользователь удален задал вопрос в разделе Образование Со скольки и до скольки часов говорить...
Adblock detector