求助:C#控制台应用程序中,如何即时地判断用户的键盘按键


问题如题。其中的“即时”是说程序可以检测并判断用户所有的键盘按键。

在这先谢过各位的解答。

 

如果我的解释不够清晰的话,那么您可以看一下下面这个例子:

 

有这样一个简单的题目:从键盘输入一串字符,编写程序,去掉其中重复的字符(保留重复字符的第一个),然后将结果显示在屏幕中。

这个题目的基本要求实现之后,我想让用户可以重复进行这一操作:输入一个字符串,然后输出处理后的字符串;然后继续输入……而不需要再次运行程序。

那么可以把用户输入、处理方法和输出的代码放到一个循环中,循环的条件是某个键盘按键……但这种解决方法的局限是,用户决定是否继续的决定权是受限制的,即用户必须在输入、处理和输出这三个步骤结束之后才能决定是否继续。下面给出代码,可能会便于说明:

View Code
 1 class Program
2 {
3 static void Main(string[] args)
4 {
5 string strInput = string.Empty;
6
7 do
8 {
9 Console.WriteLine("\nPlease input a string:");
10 strInput = Console.ReadLine();
11 strInput = RemoveRepeatedLetter(strInput);
12 Console.WriteLine("result string:\n" + strInput);
13 } while (ContinueOrNot());
14 }
15 public static string RemoveRepeatedLetter(string strOriginal)
16 {
17 string strResult = string.Empty;
18
19 foreach (char c in strOriginal)
20 {
21 if (!strResult.Contains(c.ToString()))
22 {
23 strResult += c.ToString();
24 }
25 }
26
27 return strResult;
28 }
29 public static bool ContinueOrNot()
30 {
31 ConsoleKey c = ConsoleKey.Escape;
32
33 Console.Write("Continue, Y/N? ");
34 c = Console.ReadKey(false).Key;
35 if (c.CompareTo(ConsoleKey.N) == 0)
36 {
37 return false;
38 }
39 else
40 {
41 return true;
42 }
43 }
44 }

而与本文题目对应的,我真正想要实现的是用户可以随时结束,比如在输入字符串的过程中——例如,上述代码中的循环条件是“按键不是n/N”——当用户按下n/N键之后,程序立即结束运行。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM