none
关于C#控制台输入的问题

    问题

  • Console.Read()函数每次读取一个字符,但该方法阻塞直到按下enter键,这造成了极大的不方便,而且毫无理由,每次获取一个字符时必须按下一次enter,完全可以直接用readline实现
    2016年12月5日 14:22

全部回复

  • readline是一行,有一个或多个字符。

    read是一个字符,当实际输入的字符大于一个时,会忽略之后输入的。

    比如,跑一下下面的程序,我在控制台输入china,然后回车,最后控制台只打印c,即第一个字符,其它的忽略。

     class Program
        {
            static void Main(string[] args)
            {
                int c = Console.Read();
                Console.WriteLine((char) c);
                Console.ReadLine();
            }
        }


    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    2016年12月6日 2:23

  • Hi Blues Wang,

    enter键就是函数结束的标识,代表标准输入已经结束,如若没有这个标志,计算机怎么知道标准输入结束?
    每次读入一个字符,不一定非要按下enter键,它只是读入一个字符从你输入的字符串中, 后面的字符都会被省略掉。

    如果你使用readline就不会省略后面的字符,直到我们按下enter键。

    按下enter键,我个人觉得就是为了告诉计算机,我的标准输入已经结束。

    Best Regards,
    Hart


    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.


    2016年12月6日 6:29
    版主