如何读取用户按下的键并将其显示在控制台上?

时间:2010-06-18 08:34:37

标签: c# console keyboard

我试图让用户“输入任意一个键”,当按下该键时,它会显示“你按下'键'”。你能帮助解释这段代码中的错误吗?

这就是我写的:

using System;
class Program
{
    public static void Main(string[] args)
    {      
        Console.Write("Enter any Key: ");
        char name = Console.Read();
        Console.WriteLine("You pressed {0}", name);
    }
}

6 个答案:

答案 0 :(得分:12)

尝试

Console.WriteLine("Enter any Key: ");
ConsoleKeyInfo name = Console.ReadKey();
Console.WriteLine("You pressed {0}", name.KeyChar);

答案 1 :(得分:5)

当用户按 Enter 时,

Console.Read()会做出反应,并在按 Enter 之前返回用户键入的整个字符串。要阅读一次击键,请使用

Console.ReadKey()

答案 2 :(得分:0)

使用Console.ReadKey()代替Read()

答案 3 :(得分:0)

Console.Write("Enter any Key: ");
char name = (char)Console.Read();
Console.WriteLine("You pressed {0}", name); 

问题是Console.Read()返回一个整数,而不是char。

但是,只需通过强制转换就可以将int转换为char。因此,如果您将(char)放在read语句的前面,C#会将其转换为char并且它可以正常工作。

答案 4 :(得分:0)

string keypress = "";

Console.Write("Enter any key: ");
keypress = Console.ReadLine();
Console.Write("\nYou pressed {0}",keypress);

答案 5 :(得分:0)

{
    Console.Write("Enter any Key: ");
    char name = Convert.ToChar(Console.ReadLine());
    Console.WriteLine("You pressed {0}", name);

    Console.ReadKey();
}