Console.Read()不允许我第二次输入任何内容

时间:2013-11-02 23:24:39

标签: c# console.readline

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

    Console.WriteLine("Enter first number: ");
    double num1 = Console.Read();
    Console.WriteLine("Enter second number: ");
    double num2 = Console.Read();

不幸的是,我只能输入第一个数字。在控制台输出“输入第一个数字:”并输入一些数字之后,它只是跳到最后并且不允许我输入第二个数字......有什么想法吗?

3 个答案:

答案 0 :(得分:1)

这是Console.Read()的默认行为。来自Difference between Console.Read() and 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());

答案 1 :(得分:0)

尝试使用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);

答案 2 :(得分:0)

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