如何在当前的Console中写入?

时间:2012-01-24 10:20:49

标签: c# .net console console-application windows-console

我正在编写一个控制台应用程序,我需要知道,如何使用行的移位来编写当前行。我试着在下一个例子中解释这个: 让它控制线条的数字和内容以及光标位置。

  1. 您好!
  2. 这是我的命令shell。
  3. 请写点东西:_
  4. 当我在控制台文本“lalala”中调用我的方法编写时,我希望看到:

    1. 您好!
    2. 这是我的命令shell。
    3. LALALA
    4. 请写点东西:_
    5. 如果我使用Console.WriteLine方法,我会看到下一个:

      1. 您好!
      2. 这是我的命令shell。
      3. 请写点什么:lalala
      4. _
      5. 请帮我实现这个功能。

6 个答案:

答案 0 :(得分:3)

由于您没有提供任何代码,我假设您使用Console.WriteLine("Please write something");打印文本。由于这会在您要打印的文本中添加\ n,因此您应该使用Console.Write("Please write something")然后执行Console.ReadLine();来获取输入并自行处理\ n。

答案 1 :(得分:3)

Console.SetCursorPosition是你要找的毒药。 有关http://msdn.microsoft.com/en-us/library/system.console.setcursorposition.aspx

的更多详情

答案 2 :(得分:2)

Console.WriteLine("1.Hello!");
Console.WriteLine("2.This is my command shell.");
Console.WriteLine("3.lalala");
Console.Write("4.Please write something:");
Console.Read();

答案 3 :(得分:1)

如果我理解你的问题,我认为你需要使用

Console.Write("text"); 

这将写在光标当前所在的同一行上。

而不是:

Console.WriteLine("text");

每次调用它时,都会在控制台中创建一个新行。

答案 4 :(得分:1)

尝试这样的事情

Console.Write("Hello\nThis is My Command Shell\nlalala\nPlease Enter Something:___");

如果最终将它们全部出现的课程同时出现,但如果您对此有好处,那么

看起来像这样

console application

答案 5 :(得分:0)

我意识到这是一个老问题,但我一直在搜索这些东西,以下是它的编码方式:

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将光标放回到写入的行,然后覆盖用文本写入的内容以及相当于文本有多少个字符的填充。