在我尝试寻找一个非常简单的文本到语音应用程序时,我决定编写自己的应用程序更快。然而,我注意到Console.Readline()
在每行允许的文本数量上受到了254字符的限制;我无法在该方法文档中找到有关此限制的任何信息。
这是 Windows 系统的限制,还是我的代码出了问题?我该如何克服它?我可以决定使用Console.ReadKey()
按字符读取,但我难道不会因 MS DOS 愚蠢的文字粘贴行为而丢失字符吗?
在我尝试寻找一个非常简单的文本到语音应用程序时,我决定编写自己的应用程序更快。然而,我注意到Console.Readline()
在每行允许的文本数量上受到了254字符的限制;我无法在该方法文档中找到有关此限制的任何信息。
这是 Windows 系统的限制,还是我的代码出了问题?我该如何克服它?我可以决定使用Console.ReadKey()
按字符读取,但我难道不会因 MS DOS 愚蠢的文字粘贴行为而丢失字符吗?
这是Console API的一个有点奇怪的限制。我以前也遇到过这个问题,并找到了以下解决方案:
Console.SetIn(new StreamReader(Console.OpenStandardInput(8192)));
以下内容来自MSDN论坛帖子:
http://social.msdn.microsoft.com/Forums/en/csharpgeneral/thread/51ad87c5-92a3-4bb3-8385-bf66a48d6953
另请参阅此相关的StackOverflow问题:
public static Stream OpenStandardInput()
{
return OpenStandardInput(0x100);
}
public static Stream OpenStandardInput(int bufferSize)
{
...
}
OpenStandardInput 的默认值为 256,我猜这是有意设计的。请注意,这仅适用于 .NET,因为 Windows API 没有此限制。