d编程语言:标准输入问题还是误解?

这是一个简单的程序,它从stdin中读取行并将它们输出到stdout。
module test;

import std.stdio; 

void main(string[] args) 
{

    foreach (int i, string line; lines(stdin)) {
        writeln(line ~ " (test)");
    }
}
我正在使用Windows DMD编译器v2.052。 如果我这样做:
type file.txt | test.exe
程序将“test”一词附加到file.txt的每一行,并将它们输出到控制台。 但是我最后得到一个错误:
std.stdio.StdioException@stdstdio.d(2138): Bad file descriptor
也许我错过了什么? 它让我疯狂! :)     
已邀请:
我不熟悉type命令,也许它不是在文件完成时发送EOF。在Linux中你只需:./ test< file.txt的 这是输入重定向。与将程序输出转换为标准输入的管道不同,这会将文件转换为程序的标准输入。还有输出重定向,它接受程序的输出并将其存储在文件中。 ./test> output.txt     
这是一个长期存在的错误:http://d.puremagic.com/issues/show_bug.cgi?id = 3425 您尝试做的事情肯定适用于非Windows操作系统,也应该适用于Windows。我认为这是C / I函数的数字火星实现中的一个错误,它被
std.stdio
包裹着。我之前尝试过修复此错误,但从未成功确定其根本原因。     

要回复问题请先登录注册