Основы ввода-вывода в C#: Console.WriteLine, ReadLine и форматирование
Основы ввода-вывода в C#
Это руководство проведет вас через базовые техники ввода и вывода в C#, показывая, как читать пользовательские данные и выводить результаты.
Вывод в C#
Для вывода данных в консоль C# предлагает два основных метода:
System.Console.WriteLine()
System.Console.Write()
Здесь System — пространство имен, Console — класс, а WriteLine и Write — его методы.
Пример 1: Печать строки с WriteLine()
using System;
namespace Sample {
class Test {
public static void Main(string[] args) {
Console.WriteLine("C# is cool");
}
}
}
Результат:
C# is cool
Разница между WriteLine() и Write()
WriteLine() выводит текст и переходит на новую строку, а Write() печатает без переноса строки.
Пример 2: Использование WriteLine() и Write()
using System;
namespace Sample {
class Test {
public static void Main(string[] args) {
Console.WriteLine("Prints on ");
Console.WriteLine("New line");
Console.Write("Prints on ");
Console.Write("Same line");
}
}
}
Вывод:
Prints on New line Prints on Same line
Вывод переменных и литералов
Оба метода могут отображать переменные и литералы.
Пример 3: Переменные и литералы
using System;
namespace Sample {
class Test {
public static void Main(string[] args) {
int value = 10;
Console.WriteLine(value);
Console.WriteLine(50.05);
}
}
}
Результат:
10 50.05
Конкатенация строк оператором +
using System;
namespace Sample {
class Test {
public static void Main(string[] args) {
int val = 55;
Console.WriteLine("Hello " + "World");
Console.WriteLine("Value = " + val);
}
}
}
Результат:
Hello World Value = 55
Форматированные строки — чище и надежнее
Вместо конкатенации используйте плейсхолдеры:
Console.WriteLine("Value = {0}", val);
{0} — плейсхолдер для val. Несколько переменных — дополнительные плейсхолдеры.
Пример 5: Форматированный вывод
using System;
namespace Sample {
class Test {
public static void Main(string[] args) {
int firstNumber = 5, secondNumber = 10, result;
result = firstNumber + secondNumber;
Console.WriteLine("{0} + {1} = {2}", firstNumber, secondNumber, result);
}
}
}
Вывод:
5 + 10 = 15
Этот способ читаемее и менее ошибочен. Подробнее о форматировании строк см. в документации.
Ввод в C#
Самый простой способ получить ввод — Console.ReadLine(). Также есть Read() и ReadKey().
Пример 6: Чтение строки от пользователя
using System;
namespace Sample {
class Test {
public static void Main(string[] args) {
string testString;
Console.Write("Enter a string - ");
testString = Console.ReadLine();
Console.WriteLine("You entered '{0}'", testString);
}
}
}
Вывод:
Enter a string - Hello World You entered 'Hello World'
ReadLine(), Read() и ReadKey()
- ReadLine(): читает всю строку, возвращает строку.
- Read(): читает следующий символ, возвращает его ASCII-код.
- ReadKey(): захватывает нажатие клавиши без ожидания Enter; удобно для пауз.
Подробнее см. обсуждение на StackOverflow «Difference between Console.Read() and Console.ReadLine?»
Пример 7: Read() и ReadKey()
using System;
namespace Sample {
class Test {
public static void Main(string[] args) {
int userInput;
Console.WriteLine("Press any key to continue...");
Console.ReadKey();
Console.WriteLine();
Console.Write("Input using Read() - ");
userInput = Console.Read();
Console.WriteLine("Ascii Value = {0}", userInput);
}
}
}
Вывод:
Press any key to continue... x Input using Read() - Learning C# Ascii Value = 76
ReadKey() сразу показывает клавишу, а Read() считывает строку, но возвращает ASCII только первого символа (76 для 'L').
Чтение числовых значений
Числа требуют преобразования. Класс Convert предоставляет удобные методы.
Пример 8: Преобразование ввода в числа
using System;
namespace UserInput {
class MyClass {
public static void Main(string[] args) {
string userInput;
int intVal;
double doubleVal;
Console.Write("Enter integer value: ");
userInput = Console.ReadLine();
intVal = Convert.ToInt32(userInput);
Console.WriteLine("You entered {0}", intVal);
Console.Write("Enter double value: ");
userInput = Console.ReadLine();
doubleVal = Convert.ToDouble(userInput);
Console.WriteLine("You entered {0}", doubleVal);
}
}
}
Результат:
Enter integer value: 101 You entered 101 Enter double value: 59.412 You entered 59.412
Методы ToInt32() и ToDouble() преобразуют строку в число. Полный список методов конвертации в документации .NET.
Альтернативные стратегии ввода чисел см. в документации Microsoft.
Язык C
- Расширение облачных горизонтов: новые зоны, контейнеры и мультиоблачные стратегии
- Почему Cloud Linux бустит безопасность, стабильность и производительность в shared hosting
- Освоение ввода и вывода в C++: практическое руководство
- Ввод-вывод в C: scanf() и printf() — подробное руководство
- Мастерство ввода-вывода и импорта модулей в Python: Практическое руководство
- Ввод и вывод в Java: печать, чтение и форматирование данных
- Mailboxes в Nucleus SE: Практическое руководство по конфигурации и использованию
- Семафоры в Nucleus SE: Обзор, конфигурация и основы API
- Queues в Nucleus SE: Введение и основные Service Calls
- Создание удалённого датчика температуры на Raspberry Pi и Python — пошаговое руководство