Используя только литерный ввод, ввести непустую последовательность цифр - C# (198452)
Формулировка задачи:
Используя только литерный ввод, ввести непустую последовательность цифр, перед которой может находиться знак «+» или «-» и за которой следует пробел, и получив соответствующее целое число, присвоив его переменной K.
Кто может решите... И ваше что такое литерный ввод???
Решение задачи: «Используя только литерный ввод, ввести непустую последовательность цифр»
textual
Листинг программы
using System; static class Task { // Оботражение состояния static void Log(string Message, bool IsError = false) { // Запоминаем позицию и переходим на строку выше int cl = Console.CursorLeft; Console.CursorTop -= 1; Console.CursorLeft = 0; Console.ForegroundColor = IsError ? ConsoleColor.Red : ConsoleColor.Green; Console.Write(Message.PadRight(Console.BufferWidth)); // Переходим обратно Console.ForegroundColor = ConsoleColor.Gray; Console.CursorLeft = cl; } static int ReadNumber() { bool hasInput = false; long Value = 0, Sign = 1; Log("Начало ввода"); while (true) { // Чтение символа char c = Console.ReadKey(true).KeyChar; switch(c) { case '\x1b': // Escape Log("Предварительно завершено"); throw new Exception(); case ' ': // Space if (!hasInput) Log("Еще ничего не введено", true); else { Log("Введен пробел"); return (int) (Sign * Value); } break; case '+': case '-': if (hasInput) Log("Знак может стоять только в начале", true); else { Sign = c == '-' ? -1 : 1; Log("Введен знак"); Console.Write(c); } break; default: if (!Char.IsDigit(c)) Log("Введен нераспознанный символ", true); else { // Введена цифра Value = Value * 10 + c - '0'; if (Value > Int32.MaxValue) { Log("Число не может быть больше " + Int32.MaxValue, true); throw new Exception(); } hasInput = true; Console.Write(c); Log("Введена цифра"); } break; } } } static void Main() { Console.Write("Ввод целого числа со знаком, " + "по окончанию ожидается пробел или Escape\n\n"); try { int Value = ReadNumber(); Console.Write("\nВведенное число: {0}", Value); } catch (Exception) {} Console.WriteLine(); Console.ReadLine(); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д