1

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

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

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

4

3 回答 3

1

这是 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());
于 2013-11-02T23:31:54.160 回答
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);
于 2013-11-02T23:28:26.480 回答
0

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

于 2013-11-02T23:31:46.733 回答