采取以下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);
}
}
}
当我在单声道下构建它并在控制台上运行时,一切正常,但我无法发送EOF。键入CTRL-D只是在命令行上放置一个奇怪的字符。我认为我正在以错误的方式检查EOF,但Console.In
是TextReader
,它没有EndOfFile
属性。我该如何解决这个问题?
答案 0 :(得分:5)
哪个版本的单声道?我在2009-03-16中修复了r129444中的问题...当我按下Ctrl-D时,您的程序按预期运行。
更新:很好。我发现2.4.x.y版本没有修复:-(。它将在即将发布的2.6版本中...抱歉。 更新2: mono-2-4于2009-03-13分支。我错过了3天!
答案 1 :(得分:1)
CTRL-D是unix样式的文件结尾...因为Mono派生自Microsoft领域它是否可能使用CTRL-Z? (我没有安装Mono,所以我在黑暗中拍摄了一张照片。)