C/C++读写csv文件
csv文件其实就是文本文件,每行字段用逗号分隔。代码#include#include#include#include#includeusing namespace std;int main(){// 写文件ofstream outFile;outFile.open("data.csv", ios::out); // 打开模式可省略out
·
csv文件其实就是文本文件,每行字段用逗号分隔。
代码
#include <iostream>
#include <string>
#include <vector>
#include <fstream>
#include <sstream>
using namespace std;
int main()
{
// 写文件
ofstream outFile;
outFile.open("data.csv", ios::out); // 打开模式可省略
outFile << "name" << ',' << "age" << ',' << "hobby" << endl;
outFile << "Mike" << ',' << 18 << ',' << "paiting" << endl;
outFile << "Tom" << ',' << 25 << ',' << "football" << endl;
outFile << "Jack" << ',' << 21 << ',' << "music" << endl;
outFile.close();
// 读文件
ifstream inFile("data.csv", ios::in);
string lineStr;
vector<vector<string>> strArray;
while (getline(inFile, lineStr))
{
// 打印整行字符串
cout << lineStr << endl;
// 存成二维表结构
stringstream ss(lineStr);
string str;
vector<string> lineArray;
// 按照逗号分隔
while (getline(ss, str, ','))
lineArray.push_back(str);
strArray.push_back(lineArray);
}
getchar();
return 0;
}
结果
注意
- 上述代码无法处理更复杂的csv,比如每个逗号分割的单元格里面的带有引号和内部逗号或者换行
- 考虑子啊解析完后对于所有单元格的内容先解析成字符串,然后统一做首位的去掉引号
更多推荐
已为社区贡献2条内容
所有评论(0)