简言

近段时间公司业务需要读写csv文件,网上搜来搜去没找到完善的库,其实我的要求的真不高,只是要求c或者c++语言,跨平台,结果愣是没有,后来从朋友那里找来一份他自己写的代码,用着还不错,现在拿出来给大家分享

描述

这份代码是比较完善的,读取,修改,删除功能都有提供,windows,linux下皆可运行

windows下的示例下载地址:


linux下代码一样,只是需makefile,待有时间整理下也发上来

 

windows下运行如下图:

c++读取csv文件示例_读csv

使用代码如下:

#include <stdio.h>
#include <map>
#include <iostream>
#include "csv.h"

using namespace std;

int main()
{
string filename = "baigudong.csv";
Csv* pCsv = Csv::CreateAndLoad(filename);
if (pCsv == NULL)
{
printf("Csv::CreateAndLoad(),pCsv == NULL, filename=%s \n",filename.c_str());
return 0;
}

// 读取
int col =0;
for(int i=CSV_OFFSET;i<pCsv->GetLines();i++)
{
col =0;

MapConfig* pConf = new MapConfig;
pConf->id = pCsv->GetInt(i,col++);
pConf->parent = pCsv->GetInt(i,col++);
pConf->name = pCsv->GetString(i,col++);
pConf->desc = pCsv->GetString(i,col++);
pConf->com = pCsv->GetString(i,col++);

// .....后面的不再一一写了

printf("read map item, id=%d, parent=%d, name=%s, desc=%s, com=%s \n",pConf->id, pConf->parent,
pConf->name.c_str(),pConf->desc.c_str(),pConf->com.c_str());

// 应该保存起来,这里暂时删除
delete pConf;
}

// 修改
// todo

// 重新保存
// todo

getchar();
return 0;
};