【问题标题】:C#: Large amounts of text cut off when read by program [duplicate]C#:程序读取时会截断大量文本[重复]
【发布时间】:2016-12-14 17:43:54
【问题描述】:

您好,我似乎找不到任何有关如何将信息从 console.writeline 存储到数组中的有用信息。

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

如何将用户语句存储到数组中?目前,如果我输入大量文本,它会被删除,希望一个数组可以让所有文本都被读取和排序。 谢谢!!

【问题讨论】:

  • 你掉进了XY Problem。您的问题是:“目前,如果我输入大量文本,则会被剪切”;您应该将此作为您的问题,而不是询问如何实施假设的解决方案。 Console.WriteLineConsole.ReadLine无关。
  • 感谢您的反馈,现在应该解决了。

标签: c# arrays string console.writeline


【解决方案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

你可以创建一个新的 ReadLine 方法,查看这篇文章: Console.ReadLine() max length?

【讨论】:

  • 我在Console.ReadLine MSDN 页面上发现了类似的信息。该方法本身最多可以读取 Int32.MaxValue,但正如页面所说,它从缓冲区读取,并且该缓冲区默认情况下只有 256 个字符长。
【解决方案2】:

您可以建立与用户的沟通方式,例如当他发送一个空行时它就结束了。然后执行以下操作:

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

【讨论】:

    猜你喜欢
    • 2013-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-26
    • 1970-01-01
    • 1970-01-01
    • 2013-03-02
    相关资源
    最近更新 更多