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

时间:2014-11-13 11:00:01

标签: c# .net console-application

我用C#编写控制台应用程序,程序开头有一个问题:

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

我想设置默认" y"在此行之后,用户只需按Enter即可。 (如果他想要" n")

,或者用退格键删除它

这甚至可能吗?怎么样?

3 个答案:

答案 0 :(得分:0)

只需使用

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

所以Y在下一行,他们只需要输入。

答案 1 :(得分:0)

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

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
}

答案 2 :(得分:0)

这里的正确行为应该显示为

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();