项目源代码:https://github.com/OpenMiniServer/opencsv
使用C++分析大数据的时候,数据按CSV格式导出,可以用Excel分析数据。
OpenCSV非常易用和简单。
测试例子:
#include <assert.h>
#include "opencsv.h"
int main()
{
std::string buffer1;
std::string buffer2;
//生成CSV数据
{
OpenCSV csv = {
"ID", "name", "salary" };
csv = {
"1", "Jack", "100000" };
csv = {
"2", "Tom", "80000" };
csv = {
std::to_string(3), "Lucy", "50000" };
csv >> buffer1;
}
buffer2 = "ID,name,salary\n"
"1,Jack,100000\n"
"2,Tom,80000\n"
"3,Lucy,50000\n";
assert(buffer1 == buffer2);
//解析CSV数据
{
OpenCSV csv;
csv << buffer2;
buffer1 = "ID,name,salary\n";
for (size_t i = 1; i < csv.size(); ++i)
{
auto& line = csv[i];
buffer1.append(line["ID"] + "," + line["name"] + "," + line["salary"] + "\n");
}
}
assert(buffer1 == buffer2);
std::string filePath = "./test.csv";
//生成CSV文件
{
OpenCSV csv;
csv << buffer2;
assert(csv[0][0] == "ID");
assert(csv[0][2] == "salary");
csv[1]["salary"] = std::to_string(10000);
csv[2]["salary"] = "8000";
csv[3]["salary"] = "5000";
csv >> filePath; //自动判断是否是路径
}
buffer2 = "ID,name,salary\n"
"1,Jack,10000\n"
"2,Tom,8000\n"
"3,Lucy,5000\n";
//加载CSV文件
{
OpenCSV csv;
csv << filePath; //自动判断是否是路径
buffer1.clear();
csv >> buffer1;
}
assert(buffer1 == buffer2);
return 0;
}
跨平台支持:
Windows、linux
源文件列表:
src/opencsv.h
src/opencsv.cpp
运行测试例子
cd ./opencsv
mkdir build
cd build
cmake ..
make
./test
源文件:
src/opencsv.h
/***************************************************************************
* Copyright (C) 2023-, openlinyou, <linyouhappy@outlook.com>
*
* You may opt to use, copy, modify, merge, publish, distribute and/or sell

文章展示了如何利用C++库OpenCSV进行CSV数据的生成、解析、存储到文件以及从文件加载。代码示例包含了创建CSV数据、检查数据、写入和读取CSV文件的操作,强调了库的易用性和跨平台性。
最低0.47元/天 解锁文章
1507

被折叠的 条评论
为什么被折叠?



