C++ 操作csv 新增几列内容如何编写地名志的意义?

csv文件格式其实就是字符串之间是用tab(即"\t")分隔的,每行末尾必须都是以换行符结束,知道这个原理就可以按照写txt文件一样的方式写了,只要写好之后用excel表格打开就可以了下面用c语言文件操作函数写一个简单的例子:// test.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <cstring>
typedef int int32;
enum
eCsvWriteMode
{
ECWM_ONELINE=1,
ECWM_OTHERLINE,
};
#define ERR_RETURN(STR,RET) \
printf(STR); \
printf("\n"); \
return(RET);
int32 putString2Csv(char str[],char filename[],int mode)
{
FILE *_fp;
//try to open file
if ((_fp=fopen(filename,"a"))==NULL)
{
ERR_RETURN("fopen called error",-1);
}
int _mode=mode;
switch(_mode)
{
case ECWM_ONELINE:
{
fputs(str,_fp);
fputs("\t",_fp);
}break;
case ECWM_OTHERLINE:
{
fputs("\n",_fp);
}break;
default:break;
}
if (fclose(_fp) !=0)
{
ERR_RETURN("fclose called error",-1);
}
return 1;
}
int _tmain(int argc, _TCHAR* argv[])
{
//开始写第一行
for (int i=0;i<5;++i)
{
char strtemp[256];
sprintf(strtemp,"%s%d","天策",i);
putString2Csv(strtemp,"..//..//test.txt",ECWM_ONELINE);
}
putString2Csv("","..//..//test.txt",ECWM_OTHERLINE); //这句必须执行
//开始写第二行
for (int i=0;i<5;++i)
{
char strtemp[256];
sprintf(strtemp,"%s%d","血公子",i);
putString2Csv(strtemp,"..//..//test.txt",ECWM_ONELINE);
}
putString2Csv("","..//..//test.txt",ECWM_OTHERLINE); //这句必须执行
system("pause");
return 0;
}
然后将写好的test.txt文件用excel表格打开就能正常显示了,如图:
}
ifstream fin(filename.c_str());//以输入方式打开文件存到缓冲空间fin中
string line;
int i=0;
int comma=0;
while(getline(fin,line))//读取fin中的整行字符存在line中
{
int comma=line.find(',',0);
float A[i]=atof(line.substr(comma+1,line.length()-comma-1).c_str());
//将line中的相应位置的字符串转换成float类型放在数组中
i++;
}}

我要回帖

更多关于 c语言写入csv文件 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信