<MyRusakov.ru />

Программирование на C++ с Нуля до Гуру

Программирование на C++ с Нуля до Гуру

Данный курс научит Вас программировать на языке C++, который, несмотря на свой почтенный возраст, необычайно сильно востребован. Курс состоит из 6 разделов, посмотрев которые и выполнив все упражнения, Вы с нуля освоите этот язык и сможете создавать самые разные проекты любой сложности на C++.

Для закрепления материала из уроков к ним идёт множество упражнений.

Дополнительно к курсу идёт вспомогательная система, которая не даст Вам забросить начатое на полпути.

Также вместе с курсов Вы получаете Бонус "Программирование на C++ в Unreal Engine", в котором Вы научитесь создавать игры на C++ с использованием этого движка.

Подробнее
Подписка

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

YouTube Подписаться

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Зачем Вы изучаете программирование/создание сайтов?

Работа с пользовательским вводом в C#

Работа с пользовательским вводом в C#

Работа с пользовательским вводом - это базовая составляющая работы с программой. Благодаря ей возможно изменять поведение программы в ответ на внешние команды, вводимые пользователем, сохранять/редактировать/удалять данные и т.д.

Как получить вводимые пользователем в консоль данные в C#?

Ранее, в статьях посвященных C# Вы уже могли видеть такой вызов - Console.WriteLine() - выводящий в консоль некоторую, часто отладочную, информацию. Так вот у этого метода, есть противоположный метод, который считывает, вводимый пользователем текст из консоли, а затем этот текст обрабатывается каким-либо образом. Данный метод называется - Console.ReadLine().

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


// Пишем имя и нажимаем кнопку Enter
Console.WriteLine("Введите Ваше имя: ");

// считываем и сохраняем введенное пользователем имя в строковой переменной uname
string uname = Console.ReadLine();

// печатаем обратно на экране имя пользователя с некоторым опциональным текстом
// как видите конкатенация (соединения строк) в C# производится с помощью знака + (как и в Java и JavaScript)
Console.WriteLine("Здравствуйте, " + uname + "!"); 

Как считать число из консоли в C#?

Метод Console.ReadLine(), который мы использовали выше всегда возвращает строку, даже, если Вам нужно число, например. Но как же быть, если нам, например, понадобится получить возраст пользователя, который должен быть представлен числом?

Давайте, посмотрим на пример далее:



Console.WriteLine("Введите Ваш возвраст: ");  // 1

// считываем и сохраняем введенный пользователем возраст в переменную
int uage = Console.ReadLine(); // 2

// печатаем возраст в консоль и получаем...
Console.WriteLine("Здравствуйте, Вам: " + uage); // 3

// ошибку - Невозможно неявно преобразовать тип 'string' в 'int'на строке 2

Причина в том, что язык C# - язык со строгой статической типизацией, поэтому чтобы получить число из строки, нам необходимо самостоятельно преобразовать строку в число. Для этого в C# есть встроенный класс Convert, который содержит методы для явного преобразования типов.

Итак, посмотрим, как получить числовое представление возраста пользователя из строки ввода:


Console.WriteLine("Введите Ваш возраст: ");  // 1

// считываем и сохраняем введенный пользователем возраст в переменную, предварительно преобразовав ее в число
int uage = Convert.ToInt32(Console.ReadLine()); // 2

// печатаем возраст в консоль
Console.WriteLine("Здравствуйте, Вам: " + uage); // 3

В примере выше код сработает как ожидается, однако если вместо числа будет введена строка, то будет брошено исключение System.FormatException, сигнализирующее о том, что введенное значение некорректно.

Об исключениях в C# мы поговорим в следующих статьях, а здесь просто рассмотрим пример, как можно обработать исключение, и вывести некоторое корректное значение без аварийного завершения программы:


Console.WriteLine("Введите Ваш возраст: ");  // 1

// устанавливаем значение по умолчанию
int uage = 0;

try  // пытаемся выполнить код, который может выбросить ошибку
{
    // считываем и сохраняем введенный пользователем возраст в переменную, предварительно преобразовав ее в число
    uage = Convert.ToInt32(Console.ReadLine()); // 2
}
catch (System.FormatException){} // если получили ошибку, то просто ничего не делаем, значение переменной uage - неизменно


// печатаем возраст в консоль
Console.WriteLine("Здравствуйте, Вам: " + uage); // 3

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

Таким образом, работа с пользовательским вводом в C# - это один из базовых навыков, которым надо овладеть в первую очередь.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

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

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (1):

logaut logaut 10.12.2020 04:34:03

Михаил, в самом первом примере в этой строке Console.WriteLine("Здравствуйте, " + uname + "!"); я бы одиночные символы писал не в двойных кавычках, а одинарных. Вот пример: Console.WriteLine("Здравствуйте, " + uname + '!');

Ответить

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.