Оператор ввода в visual studio

Обновлено: 03.07.2024

Презентацию к данной лекции Вы можете скачать здесь.

Результат работы программы:

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

Методы с одинаковыми именами, но разными параметрами называются перегруженными. Компилятор определяет, какой из методов вызван, по типу передаваемых в него величин. Методы вывода в классе Console перегружены для всех встроенных типов данных, кроме того, предусмотрены варианты форматного вывода.

Листинг 4.1 содержит два наиболее употребляемых варианта вызова методов вывода. Если метод WriteLine вызван с одним параметром, он может быть любого встроенного типа. В строке, помеченной комментариями "1" и "2", нам требуется вывести в каждой строке не одну, а две величины, поэтому прежде чем передавать их для вывода, их требуется "склеить" в одну строку с помощью операции + .

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

Из управляющих последовательностей чаще всего используются символы перевода строки ( \n ) и горизонтальной табуляции ( \t ).

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

  1. Символы, представляющие собой число, вводятся с клавиатуры в строковую переменную.
  2. Выполняется преобразование из строки в переменную соответствующего типа.

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

Ввод строки выполняется в операторе 1. Длина строки не ограничена, ввод выполняется до символа перевода строки.

Ввод символа выполняется с помощью метода Read , который считывает один символ из входного потока (оператор 2). Метод возвращает значение типа int , представляющее собой код символа , или –1, если символов во входном потоке нет (например, пользователь нажал клавишу Enter ). Поскольку нам требуется не int , а char , а неявного преобразования от int к char не существует, приходится применить операцию явного преобразования типа.

Оператор 3 считывает остаток строки и никуда его не передает. Это необходимо потому, что ввод данных выполняется через буфер — специальную область оперативной памяти. Фактически данные сначала заносятся в буфер , а затем считываются оттуда процедурами ввода. Занесение в буфер выполняется по нажатию клавиши Enter вместе с ее кодом. Метод Read , в отличие от ReadLine , не очищает буфер , поэтому следующий после него ввод будет выполняться с того места, на котором закончился предыдущий.

При вводе вещественных чисел дробная часть отделяется от целой с помощью запятой (или точки - зависит от региональных настроек).

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

Ввод-вывод в файлы

Часто бывает удобно заранее подготовить исходные данные в текстовом файле и считывать их в программе. Вывод из программы тоже бывает полезно выполнить не на экран, а в текстовый файл . Работа с файлами подробно рассматривается позже, а сейчас приведем лишь образцы для использования в программах. В листинге 4.3 приведена версия программы из листинга 4.1, выполняющая вывод не на экран, а в текстовый файл с именем output.txt. Файл создается в том же каталоге, что и исполняемый файл программы, по умолчанию — . \ConsoleApplication1\bin\Debug.

Для того чтобы использовать в программе файлы, необходимо:

  1. Подключить пространство имен, в котором описываются стандартные классы для работы с файлами (оператор 1).
  2. Объявить файловую переменную и связать ее с файлом на диске (оператор 2).
  3. Выполнить операции ввода-вывода (операторы 3–5).
  4. Закрыть файл (оператор 6).

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

Для запуска программы на выполнение следует выбрать на панели Standard кнопку Start Debugging либо воспользоваться «горячей» клавишей F5. Никаких функциональных действий она, конечно, выполнять не будет, поскольку мы не сделали самого главного — не написали программу. Для этого нам следует, в первую очередь, познакомиться с методами ввода-вывода данных.

В листинге 11 приведен текст программы, выполняющей сложение двух чисел. При создании консольных приложений для ввода-вывода данных используется класс Console пространства имен System. Методы ввода Write и WriteLine отличаются тем, что использование последнего приводит к переводу курсора на следующую строку. По умолчанию данные, считанные методом ReadLine, представляются текстовой строкой. Поэтому в листинге присутствует переменная con, описанная типом String.

Предположим, мы будем вводить в программе дробные значения в качестве данных, тогда, например, метод ToDoubleO можно использовать для преобразования текстового аргумента в числовое значение вещественного типа (см. листинг 11).

Кроме класса Convert, с помощью которого и выполняется данное преобразование, в программах можно применять метод Parse, что показано в листинге 12.

using System.Collections.Generic; using System.Text;

static void Main(string[] args)

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

double a = Convert.ToDouble(con);

Console.Write("Введите 2 число "); con = Console.ReadLine(); double b = Convert.ToDouble(con); double c = a + b;

Console.WriteLine("Результат сложения двух чисел advconts adv2">

Console.WriteLine("Введите 1 число " ); con = Console.ReadLine(); double a = double.Parse(con);

Console.Write("Введите 2 число "); con = Console.ReadLine(); double b = double.Parse(con); double c = a + b;

Console.WriteLine("Результат сложения двух чисел /im/15/5594/752394-15.jpg" alt="Порядок расположения элементов на форме"/>

Рис. 12. Порядок расположения элементов на форме

Подписи к элементам управления

Рис. 13. Подписи к элементам управления

В листинге 13 приведена процедура, выполняющая сложение двух чисел. Для ее написания следует выполнить двойной щелчок на кнопке buttonl (Ок), создав процедуру обработки события buttonl_CIick.

private void buttonl_Click(object sender, EventArgs e)

double a = Convert.ToDouble(textBoxl.Text); double b = Convert.ToDouble(textBox2.Text);

Пользователь, используя методы ввода-вывода, выводит результаты разработанной им программы на экран. Однако сделать это он может по-разному, в частности, ввод данных можно осуществить на форме, что предпочтительнее тогда, когда не требуется вводить множество данных. И, наоборот, в случае ввода большого количества данных предпочтительнее запрограммировать стандартное диалоговое окно. Рассмотрим эти способы подробнее.

Первый способ. Ввод данных в текстовое окно, расположенное на форме.

double а = Convert.ToDouble(textBoxl.Text);

int a = Convert.ToIntl6(textBoxl.Text);

Запись такого вида означает занесение в ячейку с именем а введенного пользователем значения в текстовое окно с именем textBoxl, расположенное на форме.

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

Подобная ситуация представлена на рис. 14.

Вывод данных в текстовое окно на форме можно осуществить, используя метод ToString.

Запись c.ToString() означает, что значение переменной с преобразуется из числа в строку символов.

private void buttonl Click(cfc

ect sender, EventArgs e)

i) 0 Messages

ToChar ^ ToDateTime $ ToDedmal ^ ToDouble

Ъ ToInt32 ^ ToInt64 Ъ ToSByte ToSmgle $ ToString

short Convert.Tolnt 16(string value, int fromBase) (+ 13 Converts the System.String representation of a number ir signed integer.

System. ArgumentException System. OverflowExcepbon System. Forma tException

Рис. 14. Появление интеллектуальной подсказки

Таблица 9. Символы форматирования строк

Формат отображения числа

Число с фиксированной точкой

Число, записанное в экспоненциальной форме

Числовой формат Number. Применяется для представления дробных чисел

Универсальный формат General. Можно использовать для представления чисел с фиксированной или плавающей точкой

Используется для форматирования десятичных чисел

Денежный формат. Применяется для отображения денежных величин

Второй способ. Создание диалоговых окон.

К сожалению, в пространстве имен System.Windows.Forms нет базового класса, отвечающего за вывод диалоговых окон. Воспользуемся функцией InputBox языка программирования Microsoft Visual Basic, который входит в состав среды Microsoft Visual Studio 2012. Для ее использования выберем пункт

меню Project / Add Reference. Откроется окно, представленное на рис. 15

Projects Browse Recent

Microsoft. SqlServer. SmoEnum

I Microsoft. VisualBasJC

Microsoft. VisualBasic. Vsa

Microsoft. VisualC. VSCodeProvider

Microsoft. VisualStudio. CommandBars

Microsoft. VisualStudio. Debugger Visualizers

Mirrrv;nft. Vici іяІЯй iHin. VCr nrleMorlel

Рис. 15. Окно Add Reference

Solution Explorer ? Д X

j> m ш ш a

•ip Наконец-то получившееся с

SI cM Properties

*0 Microsoft.VisualBasic *0 System •O System.Data *0 System.Deployment *0 System.Drawing *0 System.Windows.Forms 'O System.Xml

Рис. 16. Окно Solution Explorer

В общем виде инструкция ввода данных с использованием функции InputBox выглядит так:

Переменная = Microsoft.VisualBasic.ІпІегасйоп.ІприіВох('77/шглашгш/г", "Заголовок'", "Содержимое", X, Y);

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

Аргумент Заголовок — это надпись в строке заголовка Окна ввода.

Содержимое — первоначальное содержимое поля ввода.

X и Y — координаты вывода диалогового окна (чаще всего будем использовать координаты -1,-1, которые позволят расположить окно по центру экрана).

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

В общем виде инструкция вывода данных с использованием функции MessageBox выглядит так:

Превью к статье о передаче аргументов командной строки в Visual Studio

Иногда нужно, чтобы программа выполняла разные действия в зависимости от заданных параметров при запуске. Для этого используется механизм аргументов командной строки. Чтобы задать аргументы достаточно написать их в консоли после имени запускаемой программы. Однако при работе в интегрированной среде разработки Visual Studio вы не запускаете программу через консоль самостоятельно, так как этим занимается сама студия. К сожалению, далеко не очевидно, каким образом задавать аргументы командной строки в Visual Studio. Конечно, можно просто открыть консоль, перейти в папку с проектом и запустить приложение прямо оттуда, передав нужные аргументы, однако есть способ сделать это прямо в среде разработки. Так давайте разберёмся ним и научимся передавать аргументы прямо из студии, не запуская консоль и не ища расположение запускаемого проекта.

Шаг первый. Создаём новый С++ проект

Если вы не знаете, как создать новый проект, прочитайте нашу статью об этом: Как создать C/C++ проект в Visual Studio.

Создание проекта в VS

Студия создаст проект и открое редактор кода, в котором будет примерно следующее:

Шаг второй. Пишем код для отображения переданных аргументов

Запустим приложение и убедимся, что ни одного аргумента помимо имени программы передано не было:

Запуск приложения

Шаг третий. Задание аргументов командной строки

Чтобы передать аргументы командной строки в Visual Studio нужно:

  1. Выбрать в верхнем меню панель Проект;
  2. В появившейся вкладке выбрать Свойства;
  3. В открывшемся окне выбрать Отладка
  4. В правой части задать аргументы в поле Аргументы команды

Проект

Свойства

Отладка

Напишем там какие-нибудь аргументы для проверки и ещё раз запустим приложение

Повторный запуск приложения

Программа вывела все аргументы, которые только что были переданы. А значит мы научились задавать параметры командной строки прямо в Visual Studio.

Фото Перминова Андрея, автора этой статьи

Выпускник МГУ им. М.В. Ломоносова

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

Читайте также: