我无法使用Console.Read()方法读取第二个字符。我的意思是我没有得到任何提示从键盘读取第二个字符。有什么帮助吗?另外,我理解字符默认是一个int但我们仍然需要在从输入读取时将其转换为char,是不是?下面的代码读取第一个char,但终止于第二个。
public static void Main()
{
Console.WriteLine("The First Character?:");
char firstChar=Convert.ToChar(Console.Read());
Console.WriteLine("The Second Character?:");
char secondChar=Convert.ToChar(Console.Read());
}
答案 0 :(得分:8)
看起来Console.ReadKey()
就是你真正想要的。
答案 1 :(得分:4)
请参阅Console.Read。具体来说,这部分:
当您键入输入字符时,Read方法会阻止其返回;按Enter键时它会终止。按Enter键会将与平台相关的行终止序列附加到输入中(例如,Windows附加回车换行符序列)。对Read方法的后续调用一次检索输入的一个字符。检索完最后一个字符后,Read会再次阻止其返回并重复循环。
答案 2 :(得分:3)
也许这段代码更接近您所寻找的......
public static void Main()
{
Console.WriteLine("The First Character?:");
char firstChar = Convert.ToChar(Console.ReadKey().KeyChar);
Console.WriteLine();
Console.WriteLine("The Second Character?:");
char secondChar = Convert.ToChar(Console.ReadKey().KeyChar);
}
答案 3 :(得分:2)
你的第二个Console.Read()
正在消耗回车,终止第一次阅读。
Console.ReadKey
使用起来有点友善,因为它不需要终止回车。如果要继续使用Console.Read
,可以在第二个提示之前尝试使用并丢弃回车符,例如:
public static void Main()
{
Console.WriteLine("The First Character?:");
char firstChar = Convert.ToChar(Console.Read());
Console.Read(); // consume carriage return
Console.WriteLine("The Second Character?:");
char secondChar = Convert.ToChar(Console.Read());
Console.WriteLine(secondChar);
}