如何在 D 2.0 中将 InputRange!(dchar) 与 Stdin 一起使用?
我正在尝试编写通用代码,可以将 lex any 字符流 (dchar
s) 写入任何地方......无论是来自文件还是来自 stdin< /code> 到另一个文件或
stdout
。
我该怎么做?
看起来 stdin
和 stdout
与 InputRange
和 OutputRange
一起使用是痛苦(因为我每次都必须手动包装它们),并且我不能使用 std.stdio.Stream 因为它给我的是字节,而不是字符串......而且我找不到任何适配器来转换轻松地从一种转变为另一种。
如此有效,我找不到在程序中使用 stdin
/stdout
的好方法。
是否有像 .NET 的 TextReader
这样的东西可以抽象地将文本读取为 InputRange!dchar
而不管其输入是字符串、控制台还是文件?
I'm trying to write generic code that can lex any stream of characters (dchar
s) into anywhere... whether it's from a file or from stdin
into another file or stdout
.
How do I do this?
It seems like stdin
and stdout
are painful to use with InputRange
and OutputRange
(since I have to wrap them manuallly every time), and I can't use std.stdio.Stream
because it gives me bytes, not strings... and I can't find any adapter to convert from one into the other easily.
So effectively, I can't find a good way to use stdin
/stdout
in my programs.
Is there something e.g. like .NET's TextReader
that can abstractly read text as an InputRange!dchar
regardless of whether its input is a string, the console, or a file?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
采用 dchar 输入范围的正确函数是:
但是,您必须有一个从 stdin 获取输入的输入范围。有人说需要重新设计 stdio/streaming,但尚未完成。 未记录的范围为 <对于标准输入,代码>dchar。
The proper function which takes a
dchar
input range is:However, you must have an input range that gets its input from stdin. There is talk of needing to rework stdio/streaming which has not been done yet. There is an undocumented range of
dchar
for stdin.