#include <iostream> #include <sstream> #include <fstream> #include <string> #include <vector> using namespace std; string Trim(string &str) { //在字符串str中从索引0开始,返回首次不匹配" "的位置(包括空格) str.erase(0, str.find_first_not_of(" "));//find_first_not_of:在字符串中搜索与其参数中指定的任何字符都不匹配的第一个字符,""里是所要搜索的总集合. str.erase(str.find_last_not_of(" ") + 1); return str; } int main() { ifstream fin("test.csv"); //打开文件流 string line; while (getline(fin, line)) //" "区分行,遇到eof终止 { cout << "原始字符串:" << line << endl; istringstream sin(line); vector<string> fields; string field; while (getline(sin, field, ',')) //以逗号为分隔符,如果没有第3个参数,则以' '作为分隔符. { fields.push_back(field); } string name = Trim(fields[0]); string age = Trim(fields[1]); string birthday = Trim(fields[2]); cout << "处理过的字符串:" << name << " " << age << " " << birthday << endl; } return EXIT_SUCCESS; }