我正在尝试用C#创建一个简单的应用程序,其中我键入的每个字符都显示在控制台窗口中。下面是我的代码:
class Program {
static void Main(string[] args) {
while (true) {
System.ConsoleKeyInfo input;
input = Console.ReadKey(false);
String d = input.ToString();
char c = d[0];
Console.WriteLine(c);
}
}
}问题是字符没有正确显示,更准确地说,每个字符后面都有一个“S”。例如,我输入'a‘,得到的是'aS’而不是'a‘。有什么解决方案吗?谢谢你的提醒!
发布于 2011-09-12 00:10:08
您看到的内容如下:
不返回您输入的原始字符,因为您向ReadKey
false ToString()方法返回的是typename (此处),而不是输入的字符。请改用以下代码来实现您尝试的结果:
while(true)
{
ConsoleKeyInfo info = Console.ReadKey(true);
Console.WriteLine(info.KeyChar);
}发布于 2011-09-12 00:08:46
因为input.ToString() == "System.ConsoleKeyInfo" :-)根据您想要做的事情,尝试编写input.KeyChar。
发布于 2011-09-12 00:14:06
Console.ReadKey(false);的参数定义您键入的密钥是否被截获。因此,Console.ReadKey(false);打印您键入的字符,而Console.Writeline(c)打印S。
https://stackoverflow.com/questions/7379458
复制相似问题