0

我在从另一个应用程序读取每个字节到 c# 中的 stdin 时遇到问题。

代码很简单:

Stream instrm=Console.OpenStandardInput();
while(true){
   int b=instrm.ReadByte();
   Environment.Exit(1);
}

我认为它应该如何工作:在 instrm 上时将是一个字节 - 应用程序将关闭。但是当我向应用程序发送字节时,什么也没有发生。我做错了,还是什么?任何线索...

4

2 回答 2

0

对我来说还有另一个解决方案:使用 .net 3.5 或更低版本编译项目,在这种情况下,一切都按预期开始工作。

于 2013-10-10T20:45:55.937 回答
0

尝试这个:

        static void Main(string[] args) {
            while(true) {
               var k = Console.ReadKey();
               Environment.Exit(1);
               }
            }

C# 是基于 Unicode 的,虽然流通常采用 UTF-8 编码,但您仍然不想养成读取字节的习惯。此外,其他控制台读取方法在输入换行符之前不会获取任何数据(以防您要备份)。

我想知道您真正想要使用的是 Pipe 吗?

于 2013-10-02T16:47:55.983 回答