2011-06-07 22 views
4

我試圖編寫通用代碼,可以將任意字符流(dchar s)放入任何位置......無論是從文件還是從stdin到另一個文件或stdout如何在D 2.0中使用帶有Stdin的InputRange!(dchar)?

我該怎麼做?

好像stdinstdout痛苦InputRangeOutputRange使用(因爲我每次都manuallly包裝他們),因爲它給了我個字節,而不是字符串我不能用std.stdio.Stream ...我找不到任何適配器可以輕鬆地從一個轉換成另一個。

那麼有效,我找不到用在我的節目stdin/stdout的好方法。

有沒有東西,例如比如.NET的TextReader,無論輸入是字符串,控制檯還是文件,它都可以抽象地讀取文本爲InputRange!dchar

回答

2

正確的函數,它接受一個dchar輸入範圍爲:

void func(Range)(Range input) 
    if(isInputRange!Range && is(ElementType!Range == dchar)) 
{} 

但是,你必須有一個從標準輸入獲取輸入的輸入範圍。有談話需要重做尚未完成的stdio/streaming。 stdin有undocumented rangedchar

相關問題