问题描述
- c#中readkey的用法是怎么样的
- c#中readkey,输入a,得到的为什么是A,输入8为什么得到的是D8
解决方案
readkey得到的是键盘代码。键盘代码是一个枚举,比如说,D8代表数字区的8,A表示字母区的A。
无论是a和A,你按下的都是A这个键,所以一样。
你要读取字符用ReadChar
解决方案二:
/// <summary> /// Read password from console /// </summary> /// <returns>password</returns> public static string ReadPassword() { char[] revisekeys = new char[3]; revisekeys[0] = (char)0x08; revisekeys[1] = (char)0x20; revisekeys[2] = (char)0x08; StringBuilder sb = new StringBuilder(); while (true) { ConsoleKeyInfo kinfo = Console.ReadKey(true); if (kinfo.Key == ConsoleKey.Enter) { break; } if (kinfo.Key == ConsoleKey.Backspace) { if (sb.Length != 0) { int rIndex = sb.Length-1; sb.Remove(rIndex 1); Console.Write(revisekeys); } continue; } sb.Append(Convert.ToString(kinfo.KeyChar)); Console.Write(""*""); } return sb.ToString(); }
解决方案三:
你要读取字符用Console.Read()
https://msdn.microsoft.com/zh-cn/library/471w8d85.aspx
https://msdn.microsoft.com/zh-cn/library/system.consolekeyinfo.aspx
你可以写
var key = Console.ReadKey();
if ((key.Modifiers & ConsoleModifiers.Control) != 0)
Console.WriteLine(""你按下了ctrl"");
解决方案四:
搞定了,谢啦,但是那个revisekeys的char数组是干嘛用的
时间: 2024-09-20 00:16:05