我正在讀取和寫入csv的數據。在C++中用字符串::擦除提取數據
所以我想出了這個問題。
我正在從csv開始,getline(myfile, myline);
,我發送myline到一個函數,以便提取所有無用的信息,並保持某些我需要的特定','(逗號)之間的部分。
我實現了這個使用此項功能:
int get_id(string myline) {
int id;
size_t pos;
pos = myline.find(",");
myline.erase((myline.begin() + pos), myline.end());
stringstream converter(myline);
converter >> id;
return id;
}
我只有一個myline.find(",");
,因爲我想要的數據是第一線的。我的csv格式的
例子:
id,name,age,address
所以我具有myline.erase()
我想是因爲當我把它在評論它運行平穩錯誤。我想知道這是否正確,我添加了一個size_t
到myline.begin()
? (沒有編譯錯誤)。作爲提取數據的心態,這也是正確的嗎?
的錯誤是:
終止叫做拋出的一個實例後 '的std :: length_error' 什麼():basic_string的:: _ S_create
是的,這聽起來很合理,因爲我在一個大循環中調用這個函數。但我想知道如何,因爲我檢查了eof。 –