Вы можете использовать Boost Tokenizer с escaped_list_separator.
escaped_list_separator анализирует надмножество csv. Boost :: tokenizer
Используется только заголовочные файлы Boost tokenizer, не требующие связывания с требуемыми библиотеками.
Вот пример, см. Parse CSV File With Boost Tokenizer В C ++ для деталей или
Boost::tokenizer
):#include
// cout, endl #include // fstream #include #include #include // copy #include // ostream_operator #include int main() { using namespace std; using namespace boost; string data("data.csv"); ifstream in(data.c_str()); if (!in.is_open()) return 1; typedef tokenizer< escaped_list_separator > Tokenizer; vector< string > vec; string line; while (getline(in,line)) { Tokenizer tok(line); vec.assign(tok.begin(),tok.end()); // vector now contains strings from one row, output to cout here copy(vec.begin(), vec.end(), ostream_iterator (cout, "|")); cout << "\n----------------------" << endl; } }