1 基础
-
Console.Read():从标准输入流读取下一个字符(含\r\n)
-
Console.ReadLine():从标准输入流读取下一行字符(不含\r\n)
2 案例一
static void Main(string[] args)
{
int a = Console.Read();
int b = Console.Read();
int c = Console.Read();
Console.Write(a + "、" + b + "、" + c);
}//本行插入断点,以便查看输出结果
2.1 过程
-
启动程序,输入 A 后输入回车键
-
控制台输出结果为 65、13、10
2.2 解析
-
程序运行到Console.Read()方法时,当前输入流没有字符可以读,因此控制台自动开启用户输入
-
用户输入A后,输入回车键
-
控制台检测到回车键,自动关闭用户输入
-
注意回车键也是一次输入!此时输入流为
[A\r\n]
,回车符\r
和换行符\n
已经进入到输入流中 -
int a = Console.Read() --> a = 字符
A
的ASCII码值65 -
int b = Console.Read() --> b = 字符
\r
的ASCII码值13 -
int c = Console.Read() --> c = 字符
\n
的ASCII码值10
3 案例二
static void Main(string[] args)
{
int a = Console.Read();
string str = Console.ReadLine();
Console.WriteLine(str + ":" + str.Length);
}//本行插入断点,以便查看输出结果
3.1 过程
-
启动程序,输入 AHallo 后输入回车键
-
控制台输出结果为 Hallo:5
3.2 解析
-
程序运行到Console.Read()方法时,当前输入流没有字符可以读,因此控制台自动开启用户输入
-
用户输入AHallo后,输入回车键,此时控制台关闭用户输入,输入流为
[AHallo\r\n]
-
int a = Console.Read(); --> 读取输入流的下一个字符
A
-
程序运行到Console.ReadLine()方法时,当前输入流还有字符
[Hallo\r\n]
可以读,因此不会开启用户输入 -
string str = Console.ReadLine() --> 读取输入流的下一行字符,即以
\r\n
为止,并且返回的字符串不包含末尾的\r\n
,str = “Hallo”
4 总结
-
运行到Console.Read()或Console.ReadLine()时,若输入流中没有字符可以读,控制台自动开启用户输入,若有则不会开启
-
用户输入回车键后,控制台自动关闭用户输入
-
控制台输入流中会记录回车键,Windows系统是\r\n
-
Console.Read()只会从输入流中读取下一个字符,且会读到\r和\n
-
Console.ReadLine()从输入流中读取下一行字符,返回字符串不包含\r和\n