OpenCSV快速方便导出CSV文件【拿虾C++】

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目源代码: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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值