我正在解决比较两个浮点数的问题,我想让用户输入所需的值。所以我写了下面的代码:
Console.WriteLine("Enter first number: ");
double num1 = Console.Read();
Console.WriteLine("Enter second number: ");
double num2 = Console.Read();
不幸的是,我只能输入第一个数字。在控制台输出“输入第一个数字:”并输入一些数字之后,它只是跳到最后并且不允许我输入第二个数字......有什么想法吗?
答案 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()
,