2016-12-14 65 views
-3

您好我似乎無法找到任何有關如何從console.writeline數組中存儲信息的有用信息。C#:當程序讀取時切斷大量文本

Console.WriteLine("Please enter one or more sentences."); 
string text = Console.ReadLine(); 

如何將用戶句子存儲到數組中?就像現在如果我輸入大量的文本一樣,它正在被切割,希望數組將允許讀取和排序所有文本。 謝謝!

+0

你落下進入[XY問題](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)。你的問題是:「目前如果我輸入大量的文本,它正在被切斷」;您應該將此視爲您的問題,而不是詢問如何實施假定的解決方案。 'Console.WriteLine'與'Console.ReadLine'無關。 – Quantic

+0

感謝您的反饋,現在應該解決。 –

回答

1

這是控制檯API的限制,它是256個字符(254 + CR LF)。 可以更改與

Console.SetIn(new StreamReader(Console.OpenStandardInput(8192))); 

找到MSDN上論壇這個限制:http://social.msdn.microsoft.com/Forums/en/csharpgeneral/thread/51ad87c5-92a3-4bb3-8385-bf66a48d6953

OR

你可以創建一個新的ReadLine方法,檢查這個帖子: Console.ReadLine() max length?

+0

我發現類似的信息在['Console.ReadLine'](https://msdn.microsoft.com/en-us/library/system.console.readline(v = vs.110).aspx)MSDN頁面上。該方法本身可以讀取Int32.MaxValue,但是由於頁面表示它從緩衝區中讀取,並且該緩衝區默認只有256個字符長。 – Quantic

1

您可以建立一種與用戶溝通的方式,就像他發送空行時結束一樣。然後執行以下操作:

Console.WriteLine("Please enter one or more sentences."); 
string text;  
List<string> list = new List(); 

while (true) 
{ 
     text = Console.ReadLine(); 

     if (text.Length == 0) 
      break; 
     else 
      list.Add(text);    
}