c# - 如何使控制台仅接受来自 Enter 键的输入?
问题描述
我想让 C# 控制台只接受来自启动屏幕上 Enter 键的输入。
我已经做到了,当按下 Enter 键以外的任何东西时,它都会关闭控制台。
如何使控制台仅接受来自 Enter 键的输入,以便在我按其他任何内容时应用程序不会关闭,然后再接收正常输入?
class Program
{
public static void ClearKeyBuffer()
{
while (Console.KeyAvailable)
Console.ReadKey(true);
}
public static void Main (string[] args)
{
int attempts = 0;
int displayattempts = 5;
bool validentry;
Console.WriteLine("Please press enter to begin");
var key = System.Console.ReadKey(true);
if (key.Key == ConsoleKey.Enter)
{
while (attempts < 5)
{
string input;
attempts = (attempts + 1);
Console.Clear();
Console.WriteLine("Please wait...");
Thread.Sleep(5000);
Console.Clear();
Console.WriteLine("Please enter your user number.");
Console.WriteLine("Attempts Remaining:" + displayattempts);
ClearKeyBuffer();
Console.WriteLine(" ");
input = Console.ReadLine();
{
if (input == "5573")
{
validentry = true;
}
else
{
validentry = false;
}
if (validentry == false)
{
displayattempts = (displayattempts - 1);
Console.Clear();
Console.WriteLine("Error: Invalid number ID entered. Please wait 5
seconds, and try again.");
Thread.Sleep(5000);
}
else if (validentry == true)
{
Console.Clear();
Console.WriteLine("Welcome Samuel");
ValidUserEntry();
}
}
}
}
if (displayattempts == 0)
{
Console.Clear();
Console.WriteLine("Error: You have entered the wrong number ID too many times.
This system will now close in 5 seconds...");
Thread.Sleep(5000);
Environment.Exit(0);
}
}
public static void ValidUserEntry()
{
ClearKeyBuffer();
Console.Clear();
Console.WriteLine("Please wait...");
Thread.Sleep(5000);
ClearKeyBuffer();
Console.Clear();
Console.WriteLine("What would you like to do?");
Console.ReadLine();
}
}
解决方案
在 first 之前添加这一行if
。然后删除if
语句和var key...
行。
while (Console.ReadKey(true).Key != ConsoleKey.Enter);
替代的,更详细的版本:
ConsoleKeyInfo key;
do
{
key = Console.ReadKey(true);
} while (key.Key != ConsoleKey.Enter);
推荐阅读
- wordpress - 如何在我的帐户页面的 woocommerce 选项卡上添加图标?
- python - 使用 Twine 上传到 pypi 时出现断管错误
- c++ - 会员呼叫运营商<<
- python - python中的抓取类输出无或[]
- nativescript - nativescript-vue 的实现角度插件
- python-3.x - Beautiful Soup4 Find All 使用索引获取特定值
- assembly - 在 MIPS 程序集中将整数放在数组中的特定位置
- javascript - 如何将 Postgresql 时间戳转换为 Javascript 日期?
- python - 使用正则表达式强制密码
- reactjs - 如何在 React 中测试(单元测试)reducer,它过滤了一组对象