将文本写出到控制台输出作为输入

本文关键字:输出 输入 控制台 文本 | 更新日期: 2023-09-27 18:30:17

我正在使用 C# 编写一个控制台应用程序,程序开始时有一个问题:

Console.WriteLine("Would you like to create the config folder? (y/n)");

我想在此行之后设置默认的"y",因此用户只需按 Enter 就足够了。(或者如果他想要"n",则用退格键删除它)

这可能吗?如何?

将文本写出到控制台输出作为输入

这里的正确行为应该显示类似的东西

Console.WriteLine("Would you like to create the config folder? (y/n) [y]");

这告诉用户y是默认值,只需按 Enter 即可自动选择它。我认为如果用户想要选择n,这会更快,因为这样用户就不必删除y然后输入他的/选择。

考虑用户是否必须经历多个问题,并且必须为所有问题选择n。这会有点烦人。

简单的编码方法(只是一个伪代码)是:

boolean selection = true; //false if 'n' is default
if(userinput == 'n') selection = false;

如果您仍想编写可更改的输出,请使用:

Console.WriteLine("Would you like to create the config folder? (y/n)");
SendKeys.SendWait("y");
Console.ReadLine();

只需使用

Console.WriteLine("");
Console.Write("y")

所以 Y 在下一行,他们只需要按回车键。

在我看来,这种行为有点奇怪。我要做的是:

Console.WriteLine("Would you like to create the config folder? (Y/N) [Y]");
ConsoleKey optionKey;
do
{
    ConsoleKeyInfo key = Console.ReadKey(true);
    optionKey = key.Key == ConsoleKey.Enter ? ConsoleKey.Y : key.Key;
} while (optionKey != ConsoleKey.Y && optionKey != ConsoleKey.N);
Console.WriteLine(optionKey);
if (optionKey != ConsoleKey.N)
{
    // Do your stuff
}