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()
Console.ReadLine()
Console.ReadKey()
【讨论】:
以上是关于Console.Read() 和 Console.ReadLine() 之间的区别?的主要内容,如果未能解决你的问题,请参考以下文章
read()与readLine()有啥不同; write()与writeLine()有啥不同