Console.Read() не позволяет мне вводить что-либо во второй раз
Я решаю проблему сравнения двух чисел с плавающей точкой и хочу, чтобы пользователь ввел желаемые значения. Поэтому я написал следующий код:
Console.WriteLine("Enter first number: ");
double num1 = Console.Read();
Console.WriteLine("Enter second number: ");
double num2 = Console.Read();
К сожалению, я могу ввести только первый номер. После того, как консоль выдает "Введите первое число: ", и я ввожу какой-то номер, он просто пропускает до конца и не позволяет мне вводить второе число... Есть мысли по этому поводу?
3 ответа
Это поведение по умолчанию Console.Read (). Из ответа о разнице между Console.Read () и Console.ReadLine ()?
Console.Read () в основном читает символ, поэтому, если вы находитесь на консоли и нажимаете клавишу, консоль закроется. [...]
Вы должны использовать Console.ReadLine();
вместо.
Console.WriteLine("Enter first number: ");
double num1 = double.Parse(Console.ReadLine());
Console.WriteLine("Enter second number: ");
double num2 = double.Parse(Console.ReadLine());
Предполагается, что вы уже вводите \ n в качестве второго ввода. Если вы введете 2 числа в первом методе чтения. Затем он автоматически помечает 1 число в первом чтении и второе число во втором. Просто заменить на ReadLine()
если вы хотите добиться поведения норамла,
Вместо этого попробуйте Console.ReadLine(). Console.Read читает только один символ
Console.WriteLine("Enter first number: ");
double num1 = double.Parse(Console.ReadLine());
Console.WriteLine("Enter second number: ");
double num2 = double.Parse(Console.ReadLine());
Или с помощью TryParse:
Console.WriteLine("Enter first number: ");
double num1, num2;
double.TryParse(Console.ReadLine(), out num1); // double.TryParse() method also returns a bool, so you could flag an error to the user here
Console.WriteLine("Enter second number: ");
double.TryParse(Console.ReadLine(), out num2);