while (getline(stream, thisword, ' ') != 0) {...

我可以在MSVC 2012下编译此行。通过传递'SPC'char作为字符串定界符,应该进行测试以查看输入流中是否还有任何字符串要处理。它大致检查指针是否为NULL。

但是,它在MSVC 2015中不起作用,并且不会编译。现在是编译错误,不是警告。

如何更新片段,以便检查是否已到达输入流的末尾?

最佳答案

getline返回对其进行调用的basic_istream对象的引用。在过去,basic_istream拥有一个返回void*的转换运算符,您可以将其与0进行比较。现在它有一个explicit operator bool(),因此您应该删除!= 0(最初并不需要)。

10-08 11:53