【C#】Console.ReadLineで255文字以上の文字列が正常に取得できない問題を回避する方法

C#でコンソールから文字列を取得する際に使う「Console.ReadLine」で、255文字以上の文字列を取得しようとすると、254文字までしか取得できない問題が発生します。

今回はこの問題を解消する方法を説明していきます。

発生条件

コンソールアプリを実行した際に、コマンドプロンプトが起動される環境でのみ発生します。

Windowsターミナルが起動する環境の場合は、100万文字までは問題なく取得できることが確認できました。

対処方法

以下のいずれかの方法で解決可能です。

Console.ReadLineを呼び出す前に設定を変更する

以下のコードでコンソールの設定を変えることで、1022文字まで取得できます。

「Console.ReadLine」を呼び出す前に以下のコードを入力してください。

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

既定のターミナルを「Windowsターミナル」に変更する

Windows11環境で1023文字以上取得する場合はこの方法がおすすめです。

以下の手順で既定のターミナルを「Windowsターミナル」に変更します。

1.「Windowsターミナル」を開きます。

2.「^」をクリックします。

3.「設定」をクリックします。

4.「既定のターミナルアプリケーション」のプルダウンをクリックします。

5.「Windowsターミナル」をクリックします。

6.「保存」をクリックします

タイトルとURLをコピーしました