2016-06-25 118 views
-2

在C++中,我分別獲得了一個格式爲float,float,float,\nfloat float float \n的矩陣的csv文件。getline忽略' n' - 帶兩個分隔符的getline

如果我讀明智使用getline結束行分隔符\n總是讀以及文件中的行,即getline(csv_file, csv_line, '\n')getline(csv_file, csv_line)給作爲輸出1,2,3,\n,而不是作爲1,2,3,我希望它。我該如何特別放棄這個\n

此外,如何區分這兩個輸入版本並存儲特定分隔符' '','

+0

有沒有可能行尾標記實際上是'\ r \ n'而不是'\ n',所以'\ r'不會被丟棄,但是您的平臺仍然將它視爲越線? –

+0

不,它只是在每行末尾的'\ n' – SemtexB

+0

它適用於我。 – Shiro

回答

0

首先,讓數據以每行不同的格式顯示通常不是一個好主意。

但是,如果是這樣,你可以讀取所有的字符串,使用this getline沒有分隔符,然後使用正則表達式或簡單的字符串函數解析字符串。您可以通過嘗試在字符串處查找,符號來定義它的格式。如果你find它,那麼你需要通過逗號分割,否則由空白。

也看看stringstream類(​​)。這只是針對這種情況,當你需要從已經存在的字符串中分割出一些值時(而不僅僅是一種類型)。