2016-05-13 24 views
1
while (getline(stream, thisword, ' ') != 0) {... 

我可以在MSVC 2012下編譯這一行。通過傳遞'SPC'字符作爲字符串分隔符,它應該測試以查看是否有任何字符串留在輸入流中進行處理。它大致檢查指針是否爲NULL。此getline測試適用於MSVC 2012,但在MSVC 2015中出現錯誤,它如何解決?

但是,它不適用於MSVC 2015,它不會編譯。現在是編譯錯誤,而不是警告。

如何更新片段,以便檢查輸入流的末尾是否已達到?

+2

如果您收到編譯錯誤,您應該在此處輸入錯誤消息(逐字)。 – crashmstr

回答

2

getline返回對其被調用的對象basic_istream的引用。回到過去,basic_istream有一個轉換運算符返回void*,您可以將其與0進行比較。現在它有一個explicit operator bool(),所以你應該刪除!= 0(這並不是真正需要的)。

+0

太棒了!謝謝!有用! :-)這也是對舊版本的改進。 :-) –