D (Tango) 读取所有标准输入并将其分配给字符串
在 D 语言中,我如何读取所有标准输入并将其分配给字符串(使用 Tango 库)?
In the D language how I can read all standard input and assign it to a string (with Tango library) ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
直接从 http://www.dsource.org/projects/tango/wiki/ChapterIoConsole 复制:
如果只需要 1 行,请使用
Copied straight from http://www.dsource.org/projects/tango/wiki/ChapterIoConsole:
If only 1 line is required, use
另一种可能更有效的转储 Stdin 内容的方法是这样的:
一些注意事项:
dumpStream
返回一个ubyte[]
,因为char[]
被定义为 UTF-8 字符串,而 Stdin 不一定需要如此。例如,如果有人通过管道将二进制文件传输到您的程序,您最终会得到一个无效的char[]
,如果有任何东西检查它的有效性,它可能会引发异常。如果您只关心文本,那么将结果转换为char[]
就可以了。copy
是OutputStream
接口上的一种方法,可使其耗尽所提供的InputStream
中的所有输入。Another, probably more efficient way, of dumping the contents of Stdin would be something like this:
Some notes:
dumpStream
returns aubyte[]
becausechar[]
is defined as a UTF-8 string, which Stdin doesn't necessarily need to be. For example, if someone piped a binary file to your program, you would end up with an invalidchar[]
that could throw an exception if anything checks it for validity. If you only care about text, then casting the result to achar[]
is fine.copy
is a method on theOutputStream
interface that causes it to drain the providedInputStream
of all input.