作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下 D 程序,该程序应该将输入行分组为大小为 3 的组。
import std.stdio;
import std.range;
import std.array;
void main()
{
while (!stdin.eof) {
auto currentBlock = array(take(stdin.byLineCopy, 3));
foreach (i, e; currentBlock) {
writefln("%d) %s", i, e);
}
}
}
并给出以下输入
Mercury
Venus
Earth
Mars
Jupiter
Saturn
Uranus
Neptune
Pluto
它产生输出。
0) Mercury
1) Venus
2) Earth
0) Jupiter
1) Saturn
2) Uranus
0) Pluto
在每次迭代中跳过边界线(火星和海王星不在输出中)。我做错了什么?
最佳答案
stdin.byLineCopy
calls popFront
,这意味着在同一输入流上重复调用此函数将“跳过”元素。尝试在开始时仅创建一次 byLineCopy
范围:
void main()
{
auto r = stdin.byLineCopy;
while (!r.empty) {
foreach (i, e; r.take(3).enumerate) {
writefln("%d) %s", i, e);
}
}
}
您不需要检查 eof
,因为 byLineCopy
应该处理该问题。
关于Dlang byLine复制跳行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43592430/
我需要一个看起来像这样的类或结构 struct ThingReader { ???? lines; Thing thing; this(File f) { th
我正在尝试对 byLine() 返回的范围使用折叠操作。我希望传递给 fold 的 lambda 是一个多行函数。我搜索了谷歌并阅读了文档,但找不到关于函数签名应该是什么的描述。我推测一对是累加和,一
我正在尝试对 byLine() 返回的范围使用折叠操作。我希望传递给 fold 的 lambda 是一个多行函数。我搜索了谷歌并阅读了文档,但找不到关于函数签名应该是什么的描述。我推测一对是累加和,一
我是一名优秀的程序员,十分优秀!