前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >简单易用的OpenCSV使用教程

简单易用的OpenCSV使用教程

原创
作者头像
linyouhappy
修改2023-07-20 17:34:14
1.2K0
修改2023-07-20 17:34:14
举报
文章被收录于专栏:OpenLinyouOpenLinyou

简单易用的OpenCSV使用教程

跨平台多线程设计!

使用C++分析大数据的时候,数据按CSV格式导出,可以用Excel分析数据。

OpenCSV非常简单易用。

https://github.com/OpenMiniServer

跨平台支持

Windows、linux、Mac、iOS、Android等跨平台设计

编译和执行

请安装cmake工具,用cmake可以构建出VS或者XCode工程,就可以在vs或者xcode上编译运行。

源代码:https://github.com/OpenMiniServer/opencsvhttps://github.com/OpenMiniServer/opencsv)

代码语言:txt
复制
git clone https://github.com/OpenMiniServer/opencsv
cd ./opencsv
mkdir build
cd build
cmake ..
#如果是win32,在该目录出现opencsv.sln,点击它就可以启动vs写代码调试
make
./test

全部源文件

  • src/opencsv.h
  • src/opencsv.cpp

1.生成csv

代码语言:C++
复制
#include <assert.h>
#include "opencsv.h"
int main()
{
    //make csv
    OpenCSV csv = { "ID", "name", "salary" };
    csv = { "1", "Jack", "100000" };
    csv = { "2", "Tom", "80000" };
    csv = { std::to_string(3), "Lucy", "50000" };

    std::string buffer1;
    csv >> buffer1;
    
    std::string buffer2 = "ID,name,salary\n"
            "1,Jack,100000\n"
            "2,Tom,80000\n"
            "3,Lucy,50000\n";

    assert(buffer1 == buffer2);
    return 0;
}

2.加载csv

代码语言:C++
复制
#include <assert.h>
#include "opencsv.h"
int main()
{
    std::string buffer2 = "ID,name,salary\n"
            "1,Jack,100000\n"
            "2,Tom,80000\n"
            "3,Lucy,50000\n";

    OpenCSV csv;
    csv << buffer2;

    std::string 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);
    return 0;
}

3.生成和加载csv文件

代码语言:C++
复制
#include <assert.h>
#include "opencsv.h"

int main()
{
    std::string buffer1;
    std::string buffer2;
    buffer2 = "ID,name,salary\n"
            "1,Jack,100000\n"
            "2,Tom,80000\n"
            "3,Lucy,50000\n";

    std::string filePath = "./test.csv";
    //make csv file
    {
        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";

    //read csv file
    {
        OpenCSV csv;
        csv << filePath;
        buffer1.clear();
        csv >> buffer1;
    }
    assert(buffer1 == buffer2);

    return 0;
}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简单易用的OpenCSV使用教程
    • 跨平台支持
      • 编译和执行
        • 全部源文件
          • 1.生成csv
            • 2.加载csv
              • 3.生成和加载csv文件
              相关产品与服务
              文件存储
              文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档