Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Console.ReadLine在While循环中写入时缺少输入_C#_Loops_Console Application - Fatal编程技术网

C# Console.ReadLine在While循环中写入时缺少输入

C# Console.ReadLine在While循环中写入时缺少输入,c#,loops,console-application,C#,Loops,Console Application,我有两个接受用户输入的输入行,但是当在While循环中写入时,第一个用户输入被忽略 我已经在C上尝试过,while循环和两行用户输入都被接受 在没有While循环的情况下执行以下代码时的第一个控制台窗口 第二个控制台窗口(当封装在While循环中时)n=两个用户输入都在一条线上,焊料的数量为空。 尝试替换: Console.Read(); …与: Console.WriteLine(); Console.ReadKey(true); 我想您希望允许用户在循环继续下一次迭代之前按enter

我有两个接受用户输入的输入行,但是当在While循环中写入时,第一个用户输入被忽略

我已经在C上尝试过,while循环和两行用户输入都被接受

在没有While循环的情况下执行以下代码时的第一个控制台窗口

第二个控制台窗口(当封装在While循环中时)n=两个用户输入都在一条线上,焊料的数量为空。

尝试替换:

Console.Read();
…与:

Console.WriteLine();
Console.ReadKey(true);

我想您希望允许用户在循环继续下一次迭代之前按enter键,对吗?这就是您调用Console的原因。请阅读循环末尾附近的内容

但是,Console.Read只读读取1个字符,但当您按enter键时,实际上在Windows上至少输入了2个字符,它们分别是\r和\n。Console.Read读取\r,未读取

在循环的下一次迭代中,对Console.ReadLine的第一次调用读取\n,这是一个空行,因此它返回一个空字符串。请注意,它没有等待用户输入任何内容,因为它看到仍有一些字符未读

要解决此问题,可以调用ReadKey而不是Read

Console.WriteLine();
Console.ReadKey(true);
Console.ReadKey();