简言
近段时间公司业务需要读写csv文件,网上搜来搜去没找到完善的库,其实我的要求的真不高,只是要求c或者c++语言,跨平台,结果愣是没有,后来从朋友那里找来一份他自己写的代码,用着还不错,现在拿出来给大家分享
描述
这份代码是比较完善的,读取,修改,删除功能都有提供,windows,linux下皆可运行
windows下的示例下载地址:
https://download.csdn.net/download/yzf279533105/11929740
linux下代码一样,只是需makefile,待有时间整理下也发上来
windows下运行如下图:
使用代码如下:
#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;
};