代码之家  ›  专栏  ›  技术社区  ›  JSBÕ±Õ¸Õ£Õ¹

为什么ctrl-d不以mono格式发送eof?

  •  2
  • JSBÕ±Õ¸Õ£Õ¹  · 技术社区  · 15 年前

    以下面的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 财产。我怎么修这个?

    2 回复  |  直到 15 年前
        1
  •  5
  •   Gonzalo    15 年前

    哪个版本的Mono?我把那个问题解决了 r129444 在2009-03-16…当我按ctrl-d时,您的程序按预期运行。

    更新: 很好。我发现2.4.x.y版本没有修复方法:(。它将在即将到来的2.6版本中…很抱歉。 更新2: Mono-2-4在2009-03-13分支。我错过了3天!

        2
  •  1
  •   Godeke    15 年前

    ctrl-d是Unix样式的文件尾…因为mono是从微软领域派生出来的,所以它可能使用ctrl-z吗?(我没有安装Mono,所以我要在黑暗中拍摄)。