1. 分析
给定一个txt数据,中间由空格分割,目标是读取数据,以便后续使用。由于不清楚数据大小,为了方便管理,采用vector容器作为存贮对象。
2. 程序
下面是读取的方法,读取之后,存入v中
1 void file_to_vector(string filename, vector<vector<double>> &v) { 2 //1.包含头文件 3 // 4 //2.创建流对象 5 ifstream ifs; 6 vector<double> v_temp; 7 8 //3.指定打开方式 9 ifs.open("data.txt", ios::in); 10 if (!ifs.is_open()) { 11 cout << "文件打开失败" << endl; 12 } 13 14 //4.读内容 15 string buf; 16 int k; 17 double temp; 18 19 while (getline(ifs, buf)) { 20 k = 0; 21 v_temp.clear(); 22 for (int i = 0; i < buf.size(); i++) { 23 if (buf[i] == ' ' || buf[i] == '\n' || i == buf.size() - 1) { 24 temp = stod(buf.substr(k, i-k)); 25 v_temp.push_back(temp); 26 k = i + 1; 27 } 28 } 29 v.push_back(v_temp); 30 } 31 }
下面给出打印v中每个元素的方法
1 void printVecotor(vector<vector<double> > &v) { 2 for (vector<vector<double> >::iterator it = v.begin(); it < v.end(); it++) { 3 for (vector<double>::iterator vit = (*it).begin(); vit < (*it).end(); vit++) { 4 cout << setw(10) << setiosflags(ios::left) << *(vit) << " "; 5 } 6 7 cout << endl; 8 } 9 10 }
3. 测试
下面给出程序测试结果
标签:读取,ifs,C++,vector,vit,txt,cout From: https://www.cnblogs.com/kongkongxiaoxie/p/17206747.html