此getline测试适用于MSVC 2012,但在MSVC 2015中出现错误,如何修复?

时间:2016-05-13 18:20:28

标签: c++ compiler-errors

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

我可以在MSVC 2012下编译这一行。通过一个' SPC' char作为字符串分隔符,它应该测试以查看输入流中是否还有任何字符串要处理。它粗略地检查指针是否为NULL。

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

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

1 个答案:

答案 0 :(得分:2)

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