5

C# のコンソールから 65000 文字までの非常に長い行をロードする必要があります。Console.ReadLine 自体には 254 文字 (エスケープ シーケンスの場合は +2) の制限がありますが、これを使用できます。

static string ReadLine()
{
    Stream inputStream = Console.OpenStandardInput(READLINE_BUFFER_SIZE);
    byte[] bytes = new byte[READLINE_BUFFER_SIZE];
    int outputLength = inputStream.Read(bytes, 0, READLINE_BUFFER_SIZE);
    Console.WriteLine(outputLength);
    char[] chars = Encoding.UTF7.GetChars(bytes, 0, outputLength);
    return new string(chars);
}

...その制限を克服するには、最大 8190 文字 (エスケープ シーケンスの場合は +2) まで - 残念ながら、もっと大きな行を入力する必要があります。このコマンド」がVSに表示されます。バッファは 65536 に設定する必要があります。それを行うためにいくつかの解決策を試しましたが、まだ学習中で、1022 文字または 8190 文字を超えるものはありませんでした。その制限を 65536 に増やすにはどうすればよいですか? 前もって感謝します。

4

3 に答える 3

2

Console.ReadをStringBuilderで試してください

        StringBuilder sb =new StringBuilder();
        while (true) {
            char ch = Convert.ToChar(Console.Read());
            sb.Append(ch);
            if (ch=='\n') {
                break;
            }
        }
于 2012-03-17T15:06:08.140 に答える