- •Windows-проект на языке с#
- •Константы
- •Организация консольного ввода-вывода в c#
- •Методы классов в c#
- •Модификаторы для параметров методов
- •Массивы в c#
- •Одномерные массивы
- •Многомерные массивы
- •Базовый класс System.Array
- •Работа со строками в c#
- •Управляющие последовательности и вывод служебных символов
Организация консольного ввода-вывода в c#
Для организации ввода-вывода в C# предусмотрен класс System.Console. Он же предназначен для вывода сообщений об ошибках. Естественно, что этот класс чаще применяется в консольных приложениях. Системную консоль иногда называют командной строкой.
Основными методами класса являются WriteLine() и Write(). В отличие от метода Write() метод WriteLine() добавляет в конец строки символ новой строки \n автоматически. Метод ReadLine() позволяет считывать информацию с системной консоли до ближайшего символа \n, метод Read() считывает с системной консоли единственный символ.
Создайте консольное приложение с именем Test
Измените имя исходного файла на App.cs
Измените пространство имен на Test, а имя класса на BasicIO
Уберите аргументы у функции Main()
Заполните метод Main() следующим кодом
using System;
namespace Test
{
class BasicIO
{
static void Main()
{
// Тестируем пользователя
string name;
Console.Write("Введите Ваше имя: ");
name = Console.ReadLine(); // Читаем ввод после нажатия Enter
string age;
Console.Write("Введите Ваш возраст (лет): ");
age = Console.ReadLine(); // Читаем ввод после нажатия Enter
// Выводим полученную информацию на консоль
Console.WriteLine("\nПривет, дорогой {0}!
Вам {1} лет.", name, age);
while(true);
}
}
}
Листинг 20.30 . Использование методов класса консольного ввода/вывода
Результаты экрана
Введите Ваше имя: Снетков В.М.
Введите Ваш возраст (лет): 55
Привет, дорогой Снетков В.М.! Вам 55 лет.
Нажмите комбинацию клавиш Ctrl-C или Ctrl-Break, чтобы прервать работу приложения, зацикленного на бесконечном выполнении предложения while(true);
Средства форматирования строк в C#
В C++ в консольном выводе функции prinf() применяются спецификаторы форматирования %d, %s, %c и т.д. в отдельности для каждого встроенного типа данных. В C# в консольном выводе функций Console.Write() и Console.Writeln() применяются универсальные индексированные метки {0}, {1}, {2}, и т.д., содержащие порядковый номер выводимого параметра в списке параметров. Эти подстановочные выражения обозначают знакоместа ( placeholder ), куда будет выводиться значение соответствующего параметра из списка.
Знакоместо должно начинаться открывающей фигурной скобкой, а завершаться закрывающей {}. Чтобы отобразить содержащиеся в строке форматирования фигурные скобки на дисплее, их следует указать парно {{ или }}. Аналогично, чтобы вывести на дисплей символ обратной косой черты, его нужно заэкранировать в строке форматирования вторым таким же символом.
Параметры форматирования можно применять и для массивов. При этом подстановочные выражения будут указывать на элементы этого массива.
В подстановочном выражении можно указывать и более точные настройки формата с помощью дополнительных параметров форматирования. Параметры форматирования приведены в таблице, причем их можно указывать как строчными так и прописными буквами.
Таблица 20.6 . Параметры форматирования C#
Параметр |
Значение |
C, c |
Используется для вывода значений в денежном ( Currency ) формате. По умолчанию перед выводимым значением подставляется символ доллара ($), хотя можно отменить подстановку этого символа при помощи объекта NumberFormatInfo. |
D, d |
Используется для вывода целых десятичных значений ( Decimal ). После этого символа можно указать количество значащих цифр. |
E, e |
Для вывода значений в экспоненциальном формате ( Scientific ). |
F, f |
Вывод значений с фиксированной точкой ( Fixed-point ). |
G, g |
Общий ( General ) формат.Применяется для вывода значений с фиксированной точностью или в экспоненциальном формате. |
N, n |
Стандартное числовое форматирование ( Number ) с использованием разделителей (пробелов или запятых) между разрядами. |
X, x |
Вывод значений в шестнадцатеричном формате ( Hexadecimal ). Если использовать заглавную X, то символы в шестнадцатеричном формате также будут заглавными. |
R, r |
Округление ( Round-trip ) |
Символы форматирования следуют в индексированных знакоместах сразу за номером подставляемого параметра через двоеточие:
{0:C}, {1:d}, {2:X} и т.д.
Параметры форматирования можно использовать для формирования любых символьных строк с использованием статического метода String.Format().
Измените консольное приложение с именем Test, заполнив метод Main() следующим кодом
using System;
namespace Test
{
class BasicIO
{
static void Main()
{
// Форматирование без параметров
string theString = "Привет всем!";
int theInt = 15;
float theFloat = 9.99F;
double theDouble = 123.456789;
BasicIO theClass = new BasicIO();
// Вывод
Console.WriteLine("Без параметров форматирования:");
Console.WriteLine("string: {0}\nint: {1}\nfloat:
{2}\ndouble: {3}\nobject: {4}"
, theString, theInt, theFloat, theDouble, theClass);
Console.Write("\n\n");
// Форматирование массива
object[] array = {"Привет!", 20.9, 1,
"55", Math.PI};
Console.WriteLine("Элементы массива:\n{0}; {1};
{2}; {3}; {4}", array);
Console.Write("\n\n");
// Форматирование с параметрами
Console.WriteLine("С параметрами форматирования:");
Console.WriteLine("C format: {0:C}", 99989.987);
Console.WriteLine("D9 format: {0:D9}", 99999);
Console.WriteLine("E format: {0:E}", .31415926538 * 10);
Console.WriteLine("F format: {0:F3}", 55555.6666);
Console.WriteLine("N format: {0:N}", 99999);
Console.WriteLine("X format: {0:X}", 99999);
Console.WriteLine("x format: {0:x}", 99999);
Console.Write("\n\n");
// Предварительное форматирование в символьную строку
string str;
str = String.Format("C format: {0:C}", 99989.987);
Console.WriteLine("Предварительное
форматирование в символьную строку:");
Console.WriteLine(str);
// Аналогично, с предварительным форматированием...
str = "ФИО: {{ {0} }}, Возраст: {{ {1} }}";
str = String.Format(str, "Снетков В.М.", 55);
Console.WriteLine("\n\nПредварительное
форматирование в символьную строку:");
Console.WriteLine(str);
while(true);
}
}
}
Листинг 6 . Иллюстрация способов форматирования консольного вывода
Результат форматирования вывода
Без параметров форматирования:
string: Привет всем!
int: 15
float: 9,99
double: 123,456789
object: Test.BasicIO
Элементы массива:
Привет!; 20,9; 1; 55; 3,14159265358979
С параметрами форматирования:
C format: 99 989,99р.
D9 format: 000099999
E format: 3,141593E+000
F format: 55555,667
N format: 99 999,00
X format: 1869F
x format: 1869f
Предварительное форматирование в символьную строку:
C format: 99 989,99р.
Предварительное форматирование в символьную строку:
ФИО: { Снетков В.М. }, Возраст: { 55 }