2012-01-24 19 views
1

我正在編寫一個控制檯應用程序,我需要知道,如何在當前行中寫入換行。我試圖在下一個例子中解釋這一點: 讓它用數字和內容連同光標位置來控制線條。如何在Console的當前行寫入?

  1. 您好!
  2. 這是我的命令shell。
  3. 請寫的東西:_

當我呼籲在控制檯文本 「LALALA」 寫我的方法,我希望看到:

  1. 您好!
  2. 這是我的命令shell。
  3. LALALA
  4. 請寫的東西:_

如果我使用Console.WriteLine方法我看到了未來:

  1. 您好!
  2. 這是我的命令shell。
  3. 請寫的東西:LALALA
  4. _

請幫我實現這個功能。

回答

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

由於您沒有提供任何代碼,我假設您使用Console.WriteLine("Please write something");來打印文本。由於這會將\ n添加到要打印的文本中,因此應該使用Console.Write("Please write something")然後執行Console.ReadLine();以獲取輸入並自行處理\ n。

1

更多細節。如果我理解你的問題的權利,我認爲你需要使用

Console.Write("text"); 

這將在同一行寫成光標目前。

不是:

Console.WriteLine("text"); 

這將在控制檯中創建一個新的行每次調用時間。

1

請找到出現上述情況的代碼:

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中使用的變量。

1

嘗試這樣的事情

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

如果當然,這最終將讓他們都出現在同一時間,但如果你很好用,這將工作

看起來像這樣

console application

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把光標回被寫入行,然後覆蓋的是與文本和填充相當於文本多少字符有一種書寫。