我在从另一个应用程序读取每个字节到 c# 中的 stdin 时遇到问题。
代码很简单:
Stream instrm=Console.OpenStandardInput();
while(true){
int b=instrm.ReadByte();
Environment.Exit(1);
}
我认为它应该如何工作:在 instrm 上时将是一个字节 - 应用程序将关闭。但是当我向应用程序发送字节时,什么也没有发生。我做错了,还是什么?任何线索...
对我来说还有另一个解决方案:使用 .net 3.5 或更低版本编译项目,在这种情况下,一切都按预期开始工作。
尝试这个:
static void Main(string[] args) {
while(true) {
var k = Console.ReadKey();
Environment.Exit(1);
}
}
C# 是基于 Unicode 的,虽然流通常采用 UTF-8 编码,但您仍然不想养成读取字节的习惯。此外,其他控制台读取方法在输入换行符之前不会获取任何数据(以防您要备份)。
我想知道您真正想要使用的是 Pipe 吗?