Перейти к содержимому

Console writeline c что это

  • автор:

Что такое Console.Write в C#?

В C# методы Console.Write и Console.WriteLine используются для вывода текста и значений на консоль. Эти методы обеспечивают простой способ взаимодействия с пользователем и вывода информации в окно консоли.

Вывод без перевода строки: Метод Console.Write выводит текст или значения на консоль без добавления перевода строки. Вывод остается на одной строке.

// Пример использования Console.Write для вывода текста без перевода строки Console.Write("Привет, "); Console.Write("мир!"); // Вывод: Привет, мир!

Вывод с переводом строки: Метод Console.WriteLine выводит текст или значения на консоль с добавлением перевода строки. Каждый вызов начинает новую строку вывода.

// Пример использования Console.WriteLine для вывода текста с переводом строки Console.WriteLine("Привет, мир!"); // Вывод: // Привет, мир!

Console writeline c что это

Для вывода информации на консоль мы уже использовали встроенный метод Console.WriteLine . То есть, если мы хотим вывести некоторую информацию на консоль, то нам надо передать ее в метод Console.WriteLine:

string hello = "Привет мир"; Console.WriteLine(hello); Console.WriteLine("Добро пожаловать в C#!"); Console.WriteLine("Пока мир. "); Console.WriteLine(24.5);
Привет мир! Добро пожаловать в C#! Пока мир. 24,5

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

string name = "Tom"; int age = 34; double height = 1.7; Console.WriteLine($"Имя: Возраст: Рост: м");

Для встраивания отдельных значений в выводимую на консоль строку используются фигурные скобки, в которые заключается встраиваемое значение. Это можем значение переменной ( ) или более сложное выражение (например, операция сложения ). А перед всей строкой ставится знак доллара $.

При выводе на консоль вместо помещенных в фигурные скобки выражений будут выводиться их значения:

Имя: Tom Возраст: 34 Рост: 1,7м

Есть другой способ вывода на консоль сразу нескольких значений:

string name = "Tom"; int age = 34; double height = 1.7; Console.WriteLine("Имя: Возраст: Рост: м", name, height, age);

Здесь мы видим, что строка в Console.WriteLine содержит некие числа в фигурных скобках: , , . Это плейсхолдеры, вместо которых при выводе строки на консоль будут подставляться некоторые значения. Подставляемые значения указываются после строки через запятую.

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

"Имя: Возраст: Рост: м"

будет заменена на

"Имя: Tom Возраст: 34 Рост: 1,7м"
Console.Write

Кроме Console.WriteLine() можно также использовать метод Console.Write() , он работает точно так же за тем исключением, что не добавляет переход на следующую строку, то есть последующий консольный вывод будет выводиться на той же строке.

string name = "Tom"; int age = 34; double height = 1.7; Console.Write($"Имя: Возраст: Рост: м");

Консольный ввод

Кроме вывода информации на консоль мы можем получать информацию с консоли. Для этого предназначен метод Console.ReadLine() . Он позволяет получить введенную строку.

Console.Write("Введите свое имя: "); string? name = Console.ReadLine(); Console.WriteLine($"Привет ");

В данном случае все, что вводит пользователь, с помощью метода Console.ReadLine() передается в переменную name.

Пример работы программы:

Введите свое имя: Том Привет Том

Особенностью метода Console.ReadLine() является то, что он может считать информацию с консоли только в виде строки. Кроме того, возможная ситуация, когда для метода Console.ReadLine не окажется доступных для считывания строк, то есть когда ему нечего считывать, он возвращаает значение null , то есть, грубо говоря, фактически отсутствие значения. И чтобы отразить эту ситуацию мы определяем переменную name , в которую получаем ввод с консоли, как переменную типа string? . Здесь string указывает, что переменная может хранить значения типа string, то есть строки. А знак вопроса ? указывает, что переменная также может хранить значение null , то есть по сути не иметь никакого значения. Далее мы более подробно разберем null и как с ним работать.

Однако, может возникнуть вопрос, как нам быть, если, допустим, мы хотим ввести возраст в переменную типа int или другую информацию в переменные типа double или decimal? По умолчанию платформа .NET предоставляет ряд методов, которые позволяют преобразовать различные значения к типам int, double и т.д. Некоторые из этих методов:

  • Convert.ToInt32() (преобразует к типу int)
  • Convert.ToDouble() (преобразует к типу double)
  • Convert.ToDecimal() (преобразует к типу decimal)

Пример ввода значений:

Console.Write("Введите имя: "); string? name = Console.ReadLine(); Console.Write("Введите возраст: "); int age = Convert.ToInt32(Console.ReadLine()); Console.Write("Введите рост: "); double height = Convert.ToDouble(Console.ReadLine()); Console.Write("Введите размер зарплаты: "); decimal salary = Convert.ToDecimal(Console.ReadLine()); Console.WriteLine($"Имя: Возраст: Рост: м Зарплата: $");

При вводе важно учитывать текущую операционную систему. В одних культурах разделителем между целой и дробной частью является точка (США, Великобритания. ), в других — запятая (Россия, Германия. ). Например, если текущая ОС — русскоязычная, значит, надо вводить дробные числа с разделителем запятой. Если локализация англоязычная, значит, разделителем целой и дробной части при вводе будет точка.

Пример работы программы:

Введите имя: Том Введите возраст: 25 Введите рост: 1,75 Введите размер зарплаты: 300,67 Имя: Том Возраст: 25 Рост: 1,75м Зарплата: 300,67$

C#. Урок 3. Консольный ввод\вывод

Follow us on Google Plus Follow us on rss

Backend-разработка и создание утилит командной строки невозможно без консольного ввода\вывода. В рамках данной статьи будут рассмотрены методы класса Console для чтения и записи информации в консоль.

  • Консольный ввод\вывод
  • Класс Console. Вывод данных в консоль
    • Метод Write
    • Метод WriteLine
    • Метод Read
    • Метод ReadLine
    • Метод ReadKey

    Исходный код примеров из этой статьи можете скачать из нашего github-репозитория.

    Консольный ввод\вывод

    Все приложения условно можно разделить на две группы: консольные и с графическим интерфейсом пользователя. Ко второй группе относится большая часть приложений, с которыми работают пользователи в операционной системе Windows, на смартфонах и в вебе. Под консольными будем понимать приложения, которые запускаются через терминал (командную строку), их взаимодействие с пользователем происходит в текстовом режиме. Практически все приложения, которые запускаются на стороне сервера можно отнести к этой группе. Для организации ввода\вывода информации при работе с консолью в C# используется класс Console.

    Класс Console. Вывод данных в консоль

    Класс Console содержит методы для работы с консольным вводом\выводом, управлением потоком с ошибками и окном консоли. Начнем с вывода информации в консоль, для решения этой задачи класс Console предоставляет два метода: Write и WriteLine.

    Для знакомства с методами класса Console создайте в удобном для вас каталоге проект с именем CSharpLesson3:

    > dotnet new console -o CSharpLesson3

    Метод Write

    Метод Write – направляет в стандартный выходной поток текстовое представление переданного в него объекта. Дополнительно, предоставляет возможность задать форматирование.

    Откройте файл Program.cs в созданном ранее проекте и добавьте в метод Main следующие строки, демонстрирующие работу с методом Write:

    // Примеры работы с методом Write без форматирования Console.Write("Текущая дата: "); Console.Write(DateTime.Now); Console.Write("\n"); Console.Write($"Текущая дата: \n"); // Примеры работы с методом Write с использованием форматирования Console.Write("Текущая дата: \n", DateTime.Now); Console.Write("Число: \n", 123.456789);

    Более подробно про форматирование будет написано в уроке, посвященном работе со строками.

    Сохраните документ, откройте консоль, перейдите в каталог с проектом и выполните команду:

    > dotnet run

    Результат работы программы будет выглядеть примерно следующим образом:

    Текущая дата: 16.10.2020 11:48:28 Текущая дата: 16.10.2020 11:48:28 Текущая дата: 16.10.2020 11:48:28 Текущая дата: 1,234568E+002

    Обратите внимание на первые три вызова метода Write, если не поставить символ перевода строки, то данные будут выдаваться в одну строку друг за другом, это не всегда удобно. Если требуется, чтобы вывод каждый раз осуществлялся с новой строки, то воспользуйтесь методом WriteLine.

    Метод WriteLine

    Метод WriteLine записывает указанные данные в выходной поток и добавляет символ перевода строки. Добавьте в программу следующие строки:

    Console.WriteLine("Текущая дата: "); Console.WriteLine(DateTime.Now);

    Теперь надпись “Текущая дата:” и дата со временем будут выведены в разных строках.
    WriteLine (также как Write) может принимать не только строковые значения, но и переменные разных типов:

    DateTime nowDate = DateTime.Now; string someText = "Сегодня"; int number = 924; Console.WriteLine(nowDate); Console.WriteLine(someText); Console.WriteLine(number);

    Удобным и наглядным способом вывода значений переменных в консоль с дополнительным текстовым пояснением является использование строковой интерполяции:

    Console.WriteLine($" . Число: ");

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

    Сегодня 26.08.2020 11:53:44. Число: 924

    Прием интерполяции позволяет внутри строки, используя фигурные скобки, указывать имена переменных, которые будут заменены значениями. Перед такой строкой ставится знак $.
    Методы WriteLine и Write позволяют использовать форматирование:

    Console.WriteLine(":, Число: ", nowDate, someText, number);

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

    Класс Console. Чтение данных из консоли

    В классе Console, помимо рассмотренных выше методов вывода в консоль, присутствуют методы для считывания вводимых данных из консоли.

    Метод Read

    Метод Read возвращает числовой код последнего введенного символа во входном потоке, если символ введен не был, то будет возвращен код -1. Для завершения работы метода, после ввода символа необходимо нажать клавишу “Enter”. Рассмотрим работу с методом Read на примере:

    Console.WriteLine("Нажмите любую клавишу, а затем Enter"); int key1 = Console.Read(); Console.WriteLine($"Код нажатой клавиши: "); Console.WriteLine("Символьное представление: " + Convert.ToChar(key1));

    Если после надписи “Нажмите любую клавишу, а затем Enter” будет введено более одного символа, то Read вернет только первый.

    Для представления кода в виде символа необходимо переменную key1 привести к типу Char, для этого можно воспользоваться методом Convert.ToChar().

    Метод ReadLine

    Метод ReadLine возвращает введенную строку символов до нажатия клавиши “Enter”. Добавим несколько строк в файл с исходным кодом, для демонстрации работы с методом ReadLine :

    Console.WriteLine("Введите ваше имя, а затем нажмите Enter"); string name = Console.ReadLine(); Console.WriteLine($"Привет, !");

    Если необходимо получить с консоли численные данные, то следует воспользоваться методами из класса Convert для приведения типа String к соответствующему числовому типу:

    Console.WriteLine("Сколько вам лет?"); int age = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Ваш рост в см?"); int height = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Привет , вам уже полных лет и ваш рост см", name, age, height);

    Метод ReadKey

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

    Console.WriteLine("Нажмите любую клавишу:"); var key2 = Console.ReadKey(); Console.WriteLine(key2.Key); Console.WriteLine(key2.KeyChar);

    Исходный код примеров из этой статьи можете скачать из нашего github-репозитория.

    Консольный ввод/вывод и форматирование

    В консольных приложениях не обойтись без методов класса Console.
    И главные из них: string Console.ReadLine() и void Console.WriteLine(). По сути мы можем вводить только строку, а для ввода числа необходимо преобразовать введенную строку в число соответствующего формата методами класса Convert.

    Рассмотрим примеры стандартных действий:

    // Подсказка - приглашение к диалогу Console.Write("Ваше имя: "); // Ввод строки string name = Console.ReadLine(); // Приветствие + подсказка Console.Write("Привет, " + name + "\nВведите Ваш рост в см: "); // Ввод числа. Чтобы сразу получить число, используйте методы класса Convert double height = Convert.ToDouble(Console.ReadLine())/100; name = "Петр 1"; double height_P = 2.04; if (height < height_P) Console.WriteLine(name + " был чуть выше Вас ростом!"); else Console.WriteLine("Не всякие императоры обладали высоким ростом!"); int a = 13; // Составные строки из строковых констант, переменных и выражений Console.WriteLine("Сторона квадрата: " + a + " площадь: " + a * a); Console.WriteLine("Имя: " + name + " Рост: " + height_P + " м");

    Вывод через подстановку переменных в фигурные скобки

    Console.WriteLine("Имя: Рост: м", name, height_P);

    Использование интерполяции. Символ $ перед » … «. Добавлено в последних версиях языка, наиболее изящный способ вывода:

    Console.WriteLine($"Имя: Рост: м");

    Вывод чисел с округлением по формату и без:

    double e = Math.E; // Константа класса Math Console.WriteLine("e = | | | ", e, e, e, e);

    Для форматирования целочисленных значений применяется описатель «d». Число после описателя указывает, сколько цифр будет в числовом значении. Если в исходном числе цифр меньше, то к нему добавляются нули.

    int number = 314; string result = String.Format("", number); Console.WriteLine(result); string result1 = String.Format("", number); Console.WriteLine(result1);

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

    int number2 = 23; string result2 = String.Format("", number2); Console.WriteLine(result2); // 23,00 double number3 = 45.08; string result3 = String.Format("", number3); Console.WriteLine(result3); // 45,0800 double number4 = 25.07; // вывод с округлением string result4 = String.Format("", number4); Console.WriteLine(result4); // 25,1

    Формат процентов. Описатель «P» задает отображение процентов. Используемый с ним числовой спецификатор указывает, сколько знаков будет после запятой:

    decimal number5 = 0.314158m; Console.WriteLine("", number5);

    Настраиваемые форматы.
    Используя знак #, можно настроить формат вывода. Например, нам надо вывести некоторое число в формате телефона +х (ххх)ххх-хх-хх:

    long number6 = 19876543210; string result6 = String.Format("", number6); Console.WriteLine(result6);

    Метод ToString() не только получает строковое описание объекта, но и может осуществлять форматирование. Он поддерживает те же описатели, что используются в методе Format:

    long number7 = 19876543210; Console.WriteLine(number7.ToString("+# (###) ###-##-##"));// +1 (987) 654-32-10 Console.ReadKey();

    Результат выполнения программы должен выглядеть так:

    Ваше имя: Сергей Привет, Сергей Введите Ваш рост в см: 202 Петр 1 был чуть выше Вас ростом! Сторона квадрата: 13 площадь: 169 Имя: Петр 1 Рост: 2,04 м Имя: Петр 1 Рост: 2,04 м Имя: Петр 1 Рост: 2,04 м e = 2,7 | 2,72 | 2,718 | 2,71828182845905 314 0314 23,00 45,0800 25,1 31,4% +1 (987) 654-32-10 +1 (987) 654-32-10

    NEW: Наш Чат, в котором вы можете обсудить любые вопросы, идеи, поделиться опытом или связаться с администраторами.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *