while (getline(stream, thisword, ' ') != 0) {...
我可以在MSVC 2012下編譯這一行。通過傳遞'SPC'字符作爲字符串分隔符,它應該測試以查看是否有任何字符串留在輸入流中進行處理。它大致檢查指針是否爲NULL。此getline測試適用於MSVC 2012,但在MSVC 2015中出現錯誤,它如何解決?
但是,它不適用於MSVC 2015,它不會編譯。現在是編譯錯誤,而不是警告。
如何更新片段,以便檢查輸入流的末尾是否已達到?
while (getline(stream, thisword, ' ') != 0) {...
我可以在MSVC 2012下編譯這一行。通過傳遞'SPC'字符作爲字符串分隔符,它應該測試以查看是否有任何字符串留在輸入流中進行處理。它大致檢查指針是否爲NULL。此getline測試適用於MSVC 2012,但在MSVC 2015中出現錯誤,它如何解決?
但是,它不適用於MSVC 2015,它不會編譯。現在是編譯錯誤,而不是警告。
如何更新片段,以便檢查輸入流的末尾是否已達到?
getline
返回對其被調用的對象basic_istream
的引用。回到過去,basic_istream
有一個轉換運算符返回void*
,您可以將其與0
進行比較。現在它有一個explicit operator bool()
,所以你應該刪除!= 0
(這並不是真正需要的)。
太棒了!謝謝!有用! :-)這也是對舊版本的改進。 :-) –
如果您收到編譯錯誤,您應該在此處輸入錯誤消息(逐字)。 – crashmstr