C# Console.Read()不';I don’我不允许第二次输入任何内容

C# Console.Read()不';I don’我不允许第二次输入任何内容,c#,console.readline,C#,Console.readline,我正在解决一个比较两个浮点数的问题,我想让用户输入所需的值。因此,我编写了以下代码: Console.WriteLine("Enter first number: "); double num1 = Console.Read(); Console.WriteLine("Enter second number: "); double num2 = Console.Read(); 不幸的是,我只能输入第一个数字。在控制台输出“输入第一个数字:”后,我输入一些数字,它

我正在解决一个比较两个浮点数的问题,我想让用户输入所需的值。因此,我编写了以下代码:

    Console.WriteLine("Enter first number: ");
    double num1 = Console.Read();
    Console.WriteLine("Enter second number: ");
    double num2 = 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());
或与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);
请改为尝试Console.ReadLine()。控制台。只读读取单个字符

   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);

它假定您已经输入\n作为第二个输入。如果在第一个读取方法中输入2个数字。然后,它在第一次读取时读取1个数字,在第二次读取时自动读取第二个数字。只要替换为
ReadLine()
,如果您想要实现noraml行为,

它假定您已经输入\n作为第二个输入。如果在第一个读取方法中输入2个数字。然后,它在第一次读取时读取1个数字,在第二次读取时自动读取第二个数字。如果要实现noraml行为,只需替换为
ReadLine()
,这是Console.Read()的默认行为。从一开始

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());

这是Console.Read()的默认行为。从一开始

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());

你看到了吗:?是的,我看到了,但不管我是用Read还是ReadLine。。。还是一样的问题。我尝试使用ReadLine并将值解析为double,但随后它在控制台本身中给我一条错误消息…请发布该错误消息您看到了吗:?是的,我看到了,但无论我使用Read还是ReadLine。。。还是一样的问题。我试图使用ReadLine并将值解析为double,但随后它在控制台本身中给了我一条错误消息…请以这种形式发布该错误消息:
console.ReadLine()
返回一个字符串。您需要附加一个
Convert.ToDouble()
我们这里不讨论在这种形式下不起作用的类型转换方法:
Console.ReadLine()
返回字符串。您需要附加一个
Convert.ToDouble()
我们这里不讨论类型转换的方法它第一次不起作用,但结果是当我输入浮点值时,我应该使用逗号,而不是小数点。换句话说,如果我输入2.56,它会显示一条错误消息,但当我输入2.56时,一切都正常!谢谢第一次它不起作用,但是当我输入浮点值时,我应该使用逗号,而不是小数点。换句话说,如果我输入2.56,它会显示一条错误消息,但当我输入2.56时,一切都正常!谢谢