小编Bal*_*ath的帖子

Dlang byLineCopy跳过线

我有以下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);
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

并给出以下输入

Mercury
Venus
Earth
Mars
Jupiter
Saturn
Uranus
Neptune
Pluto
Run Code Online (Sandbox Code Playgroud)

它产生输出.

0) Mercury
1) Venus
2) Earth
0) Jupiter
1) Saturn
2) Uranus
0) Pluto
Run Code Online (Sandbox Code Playgroud)

在每次迭代时跳过边界处的线(火星和海王星不在输出中).我究竟做错了什么?

d

6
推荐指数
1
解决办法
88
查看次数

如何检查指针是否指向数组内的元素?

以下函数打算检查指针b是否指向数组a[0],...,a[len-1]

bool between(int *a, int len, int *b)
{
    return (a <= b) && (b < a + len);
}
Run Code Online (Sandbox Code Playgroud)

通过阅读https://en.cppreference.com/w/c/language/operator_comparison,该函数调用未定义的行为.如果是这样,这样做的正确方法是什么?为什么标准不允许这样做?

c pointers

4
推荐指数
1
解决办法
130
查看次数

标签 统计

c ×1

d ×1

pointers ×1