转载自:https://blog.csdn.net/u012234115/article/details/64465398
本例子用vs2010实现,实现过程如下:
- 新建项目,选择Visual C++->win32控制台应用程序,命名后点击确定
- 源文件中添加文件read_csv_file.cpp,read_csv_file.cpp文件内容如下
#include <iostream> #include <fstream> //定义读写已命名文件的类型 #include <vector> #include <sstream> //多定义的类型则用于读写存储在内存中的string对象 using namespace std; void main() { //写文件 ofstream outFile; //输出文件流(输出到文件) outFile.open("D:\\data1.csv",ios::out);//打开模式可省略 outFile<<"name"<<','<<"age"<<","<<"hobby"<<endl; outFile<<"xiaoming"<<','<<18<<","<<"music"<<endl; outFile<<"Mike"<<','<<21<<","<<"football"<<endl; outFile<<"Tom"<<','<<23<<","<<"basketball"<<endl; //读文件 ifstream inFile("D:\\data1.csv",ios::in);//inFile来自fstream,ifstream为输入文件流(从文件读入) string lineStr; vector<vector<string>> strArray; while(getline(inFile,lineStr)) //getline来自sstream { //打印整行字符串 //cout<<lineStr<<endl; //存成二维表结构 stringstream ss(lineStr);//来自sstream string str; vector<string> lineArray; //按照逗号分隔 while(getline(ss,str,',')) lineArray.push_back(str);//一行数据以vector保存 //cout<<lineArray[0]<<endl; strArray.push_back(lineArray);//每一行vector数据都放到strArray中去 } //输出结果 for(int i=0;i<strArray.size();i++) { for(int j=0;j<strArray[i].size();j++) cout<<strArray[i][j]<<" "; cout<<endl; } getchar();//用户输入的字符被存放在键盘缓冲区中,直到用户按回车为止(防止程序一闪而过) }
- 编译并运行,输出结果如下: