Вы всегда можете использовать псевдонимы
alias your_env='source ~/scripts/your_env.sh'
. typedef vector<vector<string> > Rows;
Rows rows;
ifstream input("filename.csv");
char const row_delim = '\n';
char const field_delim = '\t';
for (string row; getline(input, row, row_delim); ) {
rows.push_back(Rows::value_type());
istringstream ss(row);
for (string field; getline(ss, field, field_delim); ) {
rows.back().push_back(field);
}
}
Это поможет вам начать работу. Он не проверяет, что каждая строка имеет одинаковое количество полей, позволяет экранировать field_delim
и т. Д.
Нет проблем с использованием iostreams - вы можете прочитать каждую строку с помощью getline в строку, а затем использовать stringstream в этой строке для перебора полей.
Есть несколько библиотеки, перечисленные в статье Википедии CSV_application_support .