Как читать одним символом клавиатуры (например, getch)?

В C я мог бы использовать getch() для получения ввода, не заставляя пользователя нажимать ввод. например

#include <conio.h>

int main()
{
    char c;
    c = getch();
    return 0;
}

Какая функция может сделать то же самое в C#? (без нажатия Enter).


person alextikh    schedule 01.03.2014    source источник


Ответы (4)


Вы можете использовать Console.ReadKey():

Получает следующий символ или функциональную клавишу, нажатую пользователем.

Возвращает информацию о нажатой клавише. Затем вы можете использовать KeyChar для получения символа Unicode нажатой клавиши:

int Main()
{
    char c = Console.ReadKey().KeyChar;
    return 0;
}
person Sergey Berezovskiy    schedule 01.03.2014

Вы можете использовать Console.ReadKey().KeyChar для чтения символ из Console без нажатия клавиши Enter

Из MSDN:

Получает следующий символ или функциональную клавишу, нажатую пользователем. Нажатая клавиша отображается в окне консоли.

Попробуй это:

char ch=Console.ReadKey().KeyChar;
person Sudhakar Tillapudi    schedule 01.03.2014

getch();

не показывает ввод в консоли.

Поэтому вам нужно это в С#

char ch = Console.ReadKey(true).KeyChar;

если вам нужно отображение ввода в консоли, то это вам нужно

char ch1 = Console.ReadKey(false).KeyChar;
person V-SHY    schedule 01.03.2014

вы можете получить целое число с Console.Read()

затем вы можете преобразовать его в символ, используя Convert.ToChar(x)

Источник: http://msdn.microsoft.com/en-us/library/system.console.read(v=vs.110).aspx

person WebFreak001    schedule 01.03.2014