Console.Read() 和 Console.ReadLine() 之间的区别?

Posted

技术标签:

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

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

【问题讨论】:

Quick googling: Console.Read reads a single character 和 Console.ReadLine reads a whole line。 快速查看在线 MSDN 会回答:行定义为字符序列,后跟回车符(十六进制 0x000d)、换行符(十六进制 0x000a)或Environment.NewLine 属性。返回的字符串不包含终止字符。 也值得一读——Console.Read() and Console.ReadLine() problems ReadKey() 使程序等待按键,并在从 Visual Studio .NET 启动程序时防止屏幕快速运行和关闭,而 ReadLine() 从控制台读取输入并将它们作为字符串返回。 【参考方案1】:

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

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

【讨论】:

【参考方案2】:

MSDN 在这方面其实很清楚。

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

【讨论】:

【参考方案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);

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

【讨论】:

从答案中删除了促销内容。不允许在 *** 上宣传任何东西(网站、博客、任何产品或其他),尤其是当它不能解决所提出问题/问题的目的时。 字符集可能不是 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() - 接受字符并返回字符。

总结:

    这三个方法主要用于Console应用,用于返回不同的值。 如果我们使用 Read line 或 Read(),我们需要按 Enter 才能返回代码。 如果我们使用 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();

【讨论】:

以上是关于Console.Read() 和 Console.ReadLine() 之间的区别?的主要内容,如果未能解决你的问题,请参考以下文章

read()与readLine()有啥不同; write()与writeLine()有啥不同

c#输入语句

c#中Console类的使用方法有哪些?

新手坐等c#控制台console输出的数据保存到txt中。。。。

Switch语法使用

续控制台