如何从键盘读取“Enter”退出程序

问题描述 投票:0回答:5

我在 Visual Studio 2013 中用 C# 编写了一个简单的程序。 在程序结束时,我指示用户:

“请按 Enter 退出程序。”

我想在下一行从键盘获取输入,如果按下 ENTER,程序将退出。

谁能告诉我如何实现这个功能?

我尝试过以下代码:

Console.WriteLine("Press ENTER to close console......");
String line = Console.ReadLine();

if(line == "enter")
{
    System.Environment.Exit(0);
}
c# visual-studio exit console.readline
5个回答
10
投票

尝试以下操作:

ConsoleKeyInfo keyInfo = Console.ReadKey();
while(keyInfo.Key != ConsoleKey.Enter)
    keyInfo = Console.ReadKey();

您也可以使用 do-while。更多信息:Console.ReadKey()


7
投票

像这样使用

Console.ReadKey(true);

ConsoleKeyInfo keyInfo = Console.ReadKey(true); //true here mean we won't output the key to the console, just cleaner in my opinion.
if (keyInfo.Key == ConsoleKey.Enter)
{
    //Here is your enter key pressed!
}

5
投票

如果你这样写程序:

  • 你不需要打电话
    System.Environment.Exit(0);
  • 您也不需要检查输入键。

示例:

class Program
{
    static void Main(string[] args)
    {
        //....
        Console.WriteLine("Press ENTER to exit...");
        Console.ReadLine();
    }
}

另一个例子:

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("Press Enter in an emplty line to exit...");
        var line= "";
        line = Console.ReadLine();
        while (!string.IsNullOrEmpty(line))
        {
            Console.WriteLine(string.Format("You entered: {0}, Enter next or press enter to exit...", line));
            line = Console.ReadLine();
        }
    }
}

又一个例子:

如果需要,可以检查

Console.ReadLine()
读取到的值是否为空,然后
Environment.Exit(0);

//...
var line= Console.ReadLine();
if(string.IsNullOrEmpty(line))
    Environment.Exit(0)
else
    Console.WriteLine(line);
//...

1
投票
Console.WriteLine("Press Enter");
if (Console.ReadKey().Key == ConsoleKey.Enter)
{
    Console.WriteLine("User pressed \"Enter\"");
}

0
投票

在更实用的方法中,您可以使用循环并读取键以使用多个选项,直到按下特定键退出控制台我使用了键号 0 (ConsoleKey.NumPad0),您可以将其更改为 Enter (ConsoleKey.Enter)

Console.WriteLine("Write Option: 1 ~ 3 or 0 to Exit.");
while (true)
{
    ConsoleKeyInfo keyInfo = Console.ReadKey(true);
    // Use if because switch will not allow break.
    if (keyInfo.Key == ConsoleKey.NumPad0) 
    {
        break; // Exit the loop.
    }
    switch (keyInfo.Key) 
    {
        case ConsoleKey.NumPad1:
            Console.WriteLine("Option 1 Selected");
        break;
        case ConsoleKey.NumPad2:
            Console.WriteLine("Option 2 Selected");
        break;
        case ConsoleKey.NumPad3:
            Console.WriteLine("Option 3 Selected");
            break;
        default: Console.WriteLine("Please enter a valid option."); break;
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.