C#的Console.Read函数:
读取缓冲区中的数据,读取到一个字符时停止。
C#的Console.ReadLine函数
读取缓冲区中的数据,遇到回车时停止。
Enter键:
将行数据输入缓冲区,并且将回车符和换行符 加入缓冲区。
注意
Console.ReadLine函数遇到回车停止,但是读入的字符串不包括回车或者换行,并且缓冲区对应的回车和换行会被清除。
Console.Read函数仅读取一个字符,会读取回车符,且换行符会停留在缓冲区中。
示例
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication2
{
class Program1 : Object
{
static void Main(string[] args)
{
Console.Write("Please Input Grade Level: ");
String str = Console.ReadLine();
Console.WriteLine(str);
Console.Write("Please Input Grade Level: ");
Console.WriteLine(Console.Read());
Console.Write("Please Input Grade Level: ");
Console.WriteLine(Console.Read());
Console.Write("Please Input Grade Level: ");
Console.WriteLine(Console.Read());
Console.Write("Please Input Grade Level: ");
Console.WriteLine(Console.Read());
}
}
}
可以看到:
当Console.ReadLine等待读取时,按下Enter键,函数返回的是空字符。
当Console.Read等待读取时,按下Enter键,函数返回读取到的回车符(ASCII码值为13),下一个Console.Read函数读取到的是换行符(ASCII码值为10)。
总结当程序中存在单个或者多个Read函数时要注意,以防止读入未预料的输入。