2

次のC#ファイルを使用してください。これは、私の問題を可能な限り簡単に再現したものです。

using System;
using System.IO;

public static class Test
{
    public static void Main(string[] args)
    {
        string line;
        while ((line = Console.In.ReadLine()) != null)
        {
            Console.Out.WriteLine(line);
        }
    }
}

これをmonoでビルドしてコンソールで実行すると、EOFを送信できないことを除いてすべてが正常に機能します。Ctrl-Dを入力すると、コマンドラインに奇妙な文字が表示されます。EOFのチェック方法が間違っていると思いますConsole.Inが、プロパティTextReaderを持たないです。EndOfFileどうすればこれを修正できますか?

4

2 に答える 2

5

モノのどのバージョン?2009 年 3 月 16 日にr129444でその問題を修正しました... Ctrl-D を押すと、プログラムは期待どおりに実行されます。

更新:いいね。2.4.xy バージョンには修正がないことがわかりました :-(。次の 2.6 バージョンに含まれる予定です...申し訳ありません。 更新 2: mono-2-4 は 2009-03-13 に分岐しました。 3日遅れました!

于 2009-11-12T04:40:58.407 に答える
1

CTRL-D は UNIX スタイルのファイルの終わりです...Mono は Microsoft レルムから派生しているため、おそらく CTRL-Z を使用しますか? (Mono をインストールしていないので、ここでは暗闇で撮影しています)。

于 2009-11-12T04:40:23.617 に答える