C# 无法了解Console.Read()的工作情况
我刚刚开始学习C#,我试图了解C# 无法了解Console.Read()的工作情况,c#,C#,我刚刚开始学习C#,我试图了解Console.ReadLine()Console.Read(),同时试图了解Console.Read()的工作原理,我遇到了以下问题。我试着执行下面的程序` enter cusing System; namespace Variables { class Program { static void Main(string[] args) { Console.Write("Give
Console.ReadLine()
Console.Read()
,同时试图了解Console.Read()
的工作原理,我遇到了以下问题。我试着执行下面的程序`
enter cusing System;
namespace Variables
{
class Program
{
static void Main(string[] args)
{
Console.Write("Give me an input :");
Console.Read();
Console.Write("Give me an input :");
Console.Read();
}
}
在控制台中,我可以为第一个console.Read()语句提供输入,但对于后面的语句,程序甚至不接受输入就完成了执行。请解释为什么程序在不接受任何输入的情况下终止
每次调用
Console.Read()
一次返回1个字符,但输入会被缓冲,直到您第一次终止该行(即当您按Enter键时)
e、 g.如果键入1[Enter]
,第一个控制台.Read()
将返回1
,第二个调用将返回[Enter]
。对Read()
的第一个调用将被阻止,而第二个调用不会被阻止([Enter]
将立即返回)
对
Read()
的任何后续调用都将再次阻塞,因为输入缓冲区现在为空。Constole.Read()
只读取单个字符。您是否可能在第一条语句中键入了多个字符?如果是这样的话,我希望第二条语句会读取后续字符,然后您的程序就会退出。从您的屏幕截图中,我猜您正在键入1,然后按Enter键。输入击键(即换行符)将作为第二个控制台的输入。当您怀疑某些内容未按您认为的方式工作时,请进行Read()
检查。这是否回答了您的问题?非常感谢@squillman,我正在做与你提到的相同的事情,现在我明白了。非常感谢,正如你提到的,我正在输入1并按下enter键。