【问题标题】:Difference between Console.Read() and Console.ReadLine()?Console.Read() 和 Console.ReadLine() 之间的区别?
【发布时间】:2011-10-13 03:31:57
【问题描述】:

我是这个领域的新手,我很困惑:Console.Read()Console.ReadLine() 之间的真正区别是什么?

【问题讨论】:

标签: c# input console inputstream


【解决方案1】:

Console.Read() 只从标准输入读取下一个字符, Console.ReadLine() 从标准输入流中读取下一行字符。

在控制台应用程序的情况下,标准输入是从用户在应用程序的控制台 UI 中键入的单词输入的。尝试用Visual Studio制作,自己看看。

【讨论】:

    【解决方案2】:

    MSDN 在这方面其实很清楚。

    【讨论】:

      【解决方案3】:

      Console.Read() 读取单个键,其中Console.Readline() 等待 Enter 键。

      【讨论】:

        【解决方案4】:

        Console.Read() 只读取一个字符,而Console.ReadLine() 读取所有字符直到行尾。

        【讨论】:

          【解决方案5】:

          Console.Read() 用于从标准输入流中读取下一个字符。 当我们只想读取单个字符时,请使用Console.Read()

          Console.ReadLine() 用于从标准输入流中读取一行字符。 当我们想读取一行字符时使用Console.ReadLine()

          【讨论】:

          • 与其他答案相比,您的答案并没有真正增加任何东西(这些答案都是在 7 个月前的一分钟内写成的,这就是它们如此相似的原因)...
          【解决方案6】:

          Console.Read() 基本上读取一个字符,所以如果你在控制台上按下一个键,控制台就会关闭,同时Console.Readline() 会读取整个字符串。

          【讨论】:

          • 那么 Console.ReadKey() 呢?
          【解决方案7】:

          基本区别是:

          int i = Console.Read();
          Console.WriteLine(i);
          

          粘贴上面的代码并输入'c',输出将是99。 那是 Console.Read 给出 int 值,但该值将是该值的 ASCII 值..

          在另一边..

          string s = Console.ReadLine();
          Console.WriteLine(s);
          

          它给出输入流中给出的字符串。

          【讨论】:

          • 从答案中删除了促销内容。不允许在 Stackoverflow 上宣传任何东西(网站、博客、任何产品或其他),尤其是当它不能解决所提出问题/问题的目的时。
          • 字符集可能不是 ASCII。 ASCII 在任何 MS 操作系统(包括 MS-DOS)的控制台中都没有被大量使用。这是用户偏好,ASCII 不是默认设置。 Console.Read 的行为取决于 Console.InputEncoding。
          【解决方案8】:

          Read()、ReadLine()和Readkey()方法的区别如下:

          Read():这是 Console 类中的静态方法:

          int i = Console.Read();//it always return int value.
          Console.WriteLine(i);
          

          粘贴上面的代码并输入'1',输出将为49。即Console.Read给出int值,但该值将是ASCII值。

          ReadLine():

          string s= Console.ReadLine();//it always return string value.
          Console.WriteLine(s);
          

          它给出输入流中给出的字符串。

          ReadKey():此方法用于保持输出屏幕。当按下任意键时。 Read() 和 ReadLine() 用作退出的回车键。

          【讨论】:

            【解决方案9】:

            C#中Read()、Readline()和ReadKey()的区别:

            • Read() - 接受字符串值并返回字符串值。
            • Readline() - 接受字符串并返回整数。
            • ReadKey() - 接受字符并返回字符。

            总结:

            1. 这三个方法主要用于Console应用,用于返回不同的值。
            2. 如果我们使用 Read line 或 Read(),我们需要按 Enter 才能返回代码。
            3. 如果我们使用 Read key(),我们可以按任意键返回应用程序中的代码。

            【讨论】:

            • 'Read()' 从输入流中读取第一个字符并返回对应字符的 ASCII 值。 'ReadKey()' 从输入流中读取字符并返回包含 'KeyChar'、'Key' 和 'Modifiers' 的结构 ConsoleKeyInfo 以获取诸如按下哪个键以及在输入输入时是否按下了任何 ALT、Shift、Ctrl 等信息或不是。 'ReadLine()' 从输入控制台返回输入的字符串作为字符串
            【解决方案10】:
            Console.Read()
            

            => 只从标准输入中读取一个字符

            Console.ReadLine()
            

            => 从标准输入中读取该行中的所有字符

            【讨论】:

            • 这个答案与其他答案相比有何附加价值?
            【解决方案11】:

            这些是system.console的方法

            • ReadKey()(返回一个字符):从标准输入流或命令行中只读取一个字符。通常在您在控制台中为用户提供选项以供选择时使用,例如 select A、B 或 C。 另一个突出的例子,按 Y 或 n 继续
            • ReadLine()(返回 string):或 Console.Readline() 从标准输入流或命令行中读取一行。例如,它可以用于要求用户输入他们的姓名或年龄。它会读取所有字符,直到我们按下 enter
            • Read()(返回 int):或 Console.Read() 仅从 标准输入流。与 ReadKey 类似,只是它返回一个 整数。它从输入流中返回下一个字符,如果没有要读取的字符,则返回 (-1)。

            (还有更多 system.console 方法,例如 write() 和 writeline() 用于在命令行中写入,其行为类似于 read() 和 readline() 方法)

            MSDN 文档中的示例清楚地描述了这一点(链接在上面)。

            【讨论】:

            • 可能描述得很清楚,但 ReadKey 不返回一个字符 - 它返回一个 ConsoleKeyInfo 的实例,您需要从中提取 .Key 属性(因为它还包括元数据,例如是否使用 shift 键举行)
            【解决方案12】:

            Console.Read()

            • 它只接受来自用户输入的单个字符并返回其 ASCII 码。
            • 数据类型应该是int。因为它以 ASCII 格式返回整数值。
            • ex -> int value = Console.Read();

            Console.ReadLine()

            • 它从用户输入中读取所有字符。 (并在按 Enter 时完成)。
            • 它返回一个字符串,所以数据类型应该是字符串。
            • ex -> 字符串值 = Console.ReadLine();

            Console.ReadKey()

            • 它读取用户按下了哪个键并返回其名称。进入前不需要按回车键。
            • 它是一个结构数据类型,即ConsoleKeyInfo。
            • ex -> ConsoleKeyInfo key = Console.ReadKey();

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2013-08-23
              • 2018-02-06
              • 1970-01-01
              • 2012-08-31
              • 1970-01-01
              • 2021-12-25
              • 2020-05-10
              相关资源
              最近更新 更多