将文本写出到控制台输出作为输入
本文关键字:输出 输入 控制台 文本 | 更新日期: 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
}