6

我从没想过这是可能的,但阅读了一些相互矛盾的评论,并认为我会问专家。

如果我正在逐行读取文件的while循环,如果当前迭代将是循环中的最后一次迭代,有没有办法执行一些代码?我知道我可以简单地将这段代码放在while循环之后,这样代码就会在最后一行之后执行,但我只是想知道迭代是否有任何方法可以检测到它的位置。

谢谢!

4

2 回答 2

6

在您从文件中读取的特殊情况下,是的。

while(<>) {
    if(eof) {
        print "The last line of the file!\n";
    }
}
于 2013-10-15T20:20:13.420 回答
4

虽然可能存在某些特殊情况可以确定当前迭代是最后一次,但在一般情况下是不可能的。一个简单的例子:

while (rand() < 0.99) {
  print "Hasn't ended yet\n";
}

由于无法预测下一个随机数将是什么,因此显然不可能知道任何给定的迭代是否将是最终迭代。

于 2013-10-16T09:28:05.283 回答