?
用std::getline可以從stream中讀取一行數據, 默認的行結束符號為'\n'。最近遇到這樣一種情況:使用getline處理有相同text內容的std::ifstream和std::istringstream時,得到的結果有差異。從std::istringstream中返回的一行會多出一個不可見的'\r'符號。
對于用記事本創建的text文件,每一行用\r\n表示。當用std::ifstream讀取的時候,std::ifstream內部會處理\r\n為\n,只少從結果上看是這樣。當把整個文件讀入buffer中,再用std::istringstream處理的時候,\r仍然被保留著。
而\r多數情況下是多余的,因此需要處理掉。新的讀取行的函數如下:
Powered by: C++博客 Copyright © 力為