我正在编写一个控制台应用程序,我需要知道如何在当前行中通过换行写入。我尝试在下一个示例中解释这一点:让它控制台行及其编号和内容以及光标位置。
- 你好!
- 这是我的命令外壳。
- 请写点东西:_
当我调用我在控制台文本“lalala”中写入的方法时,我想看到:
- 你好!
- 这是我的命令外壳。
- 拉拉拉
- 请写点东西:_
如果我使用 Console.WriteLine 方法,我会看到下一个:
- 你好!
- 这是我的命令外壳。
- 请写点东西:lalala
- _
请帮我实现这个功能。
我正在编写一个控制台应用程序,我需要知道如何在当前行中通过换行写入。我尝试在下一个示例中解释这一点:让它控制台行及其编号和内容以及光标位置。
当我调用我在控制台文本“lalala”中写入的方法时,我想看到:
如果我使用 Console.WriteLine 方法,我会看到下一个:
请帮我实现这个功能。
由于您没有提供任何代码,我假设您正在使用Console.WriteLine("Please write something");
它来打印文本。由于这会将 \n 添加到您要打印的文本中,因此您应该使用Console.Write("Please write something")
然后执行 anConsole.ReadLine();
来获取输入并自己处理 \n。
Console.SetCursorPosition 是您要寻找的毒药。有关http://msdn.microsoft.com/en-us/library/system.console.setcursorposition.aspx的更多详细信息
Console.WriteLine("1.Hello!");
Console.WriteLine("2.This is my command shell.");
Console.WriteLine("3.lalala");
Console.Write("4.Please write something:");
Console.Read();
请找到上述场景的代码:
private static void ReadAndWriteToConsole()
{
var mystrings = new List<string>();
mystrings.Add("Hello!");
mystrings.Add("This is my command shell.");
var input = WriteToConsole(mystrings);
while (input.ToLower() != "exit")
{
mystrings.Add(input);
Console.Clear();
input = WriteToConsole(mystrings);
}
}
private static string WriteToConsole(IEnumerable<string> variables )
{
foreach (var str in variables)
{
Console.WriteLine(str);
}
Console.Write("Please write something:");
return Console.ReadLine();
}
希望有帮助。
注意:如果您想要每个字符串的编号,请使用 for 循环而不是 foreach 并打印 console.writeline 中使用的变量。
如果我正确理解您的问题,我认为您需要使用
Console.Write("text");
这将写在光标当前所在的同一行上。
而不是:
Console.WriteLine("text");
这将在每次调用时在控制台中创建一个新行。
尝试这样的事情
Console.Write("Hello\nThis is My Command Shell\nlalala\nPlease Enter Something:___");
如果当然最终会使它们同时出现,但是如果您对此感到满意,那么这将起作用
看起来像这样
我意识到这是一个老问题,但是我一直在搜索这些东西,下面是它的编码方式:
Console.WriteLine("Hello!");
Console.WriteLine("This is my command shell.");
string text = "";
string toWrite = "Please write something: ";
while (text != "quit")
{
Console.Write(toWrite);
text = Console.ReadLine();
Console.SetCursorPosition(0, Console.CursorTop - 1);
Console.WriteLine(text.PadRight(text.Length + toWrite.Length));
}
Console.SetCursorPosition 将光标放回写入的行,然后用文本覆盖写入的内容,并使用相当于文本有多少字符的填充。