2010-06-18 12 views
8

Sto provando a chiedere all'utente "inserire qualsiasi tasto" e quando viene premuto quel tasto mostra che "Hai premuto" il tasto "". Puoi aiutare cosa c'è di sbagliato in questo codice?Come leggere un tasto premuto dall'utente e visualizzarlo sulla console?

Questo è quello che ho scritto:

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); 
    } 
} 
+0

Se si guarda la documentazione per ConsoleKey è ottenuto un campione facendo esattamente questo (ma leggermente più avanzato): http://msdn.microsoft.com/en-us/library/system.consolekey .aspx –

risposta

9

Prova

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

Invece di mostrare la particolare Chiave nell'output, restituisce l'output come "Hai premuto System.ConsoleKeyInfo – ThickBook

+0

Hai cambiato l'ultima riga" nome "in" name.KeyChar "? – harriyott

+0

L'ho cambiato ed ora va bene, Cheeers! – ThickBook

0

Uso Console.ReadKey() invece di Read()

4

Console.Read() reagisce quando l'utente preme Inserisci, e restituisce l'intera stringa che l'utente ha digitato prima di premere Inserisci. Per leggere un tasto, usare

Console.ReadKey() 
+0

Ho fatto come hai detto e sta dando questo errore ora. "Impossibile convertire implicitamente il tipo 'System.ConsoleKeyInfo' in 'char' – ThickBook

+0

Sì,' Console.ReadKey() 'restituisce un' ConsoleKeyInfo' da cui si ottiene il carattere con 'name.KeyChar', come mostra harriyott nella sua risposta. –

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

Il problema è che Console.Read() restituisce un intero, non un char.

Tuttavia, int può essere convertito in char semplicemente convertendolo. Quindi se metti (char) davanti all'istruzione read, C# lo manda a un char e funziona bene.

0
string keypress = ""; 

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

    Console.ReadKey(); 
} 
Problemi correlati