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













