Ⅰ c语言读csv
//随便写了一个,只能取到抛砖引玉的效果,时间有限。如果有不明白的地方再和我联系吧
#define MAXCHAR 100
int main()
{
FILE *pb;
int i,num = 0,j = 0;
char pchar[MAXCHAR];
char **ppstr;
char *pstr,*ppchar;
memset(pchar, 0, 100);
pb = fopen("D:\\pb.csv","r");
if (pb == NULL)
{
printf("error!");
return;
}
ppstr = (char **)malloc(5*sizeof(char *));//这个最多可以存5条数据
pstr = (char *)malloc(5*20);//最多5条数据,每个数据不超过20-1=19
for (i = 0; i < 5; i++)
{
ppstr[i] = pstr + i*20;
}
memset(pstr, 0 ,100);
fseek(pb, 0, SEEK_SET);
fread(pchar, 1, 100, pb);
ppchar = pchar;
i = 0;
while (*ppchar)
{
if (*ppchar == 0x2c)//csv文件中一条数据和另外一条数据之间分隔符0x2c
{
memcpy(ppstr[j], pchar+num,i - num);
j++;
num = i+1;
}
if (*ppchar == 0x0a)//CSV文件中的换行符
{
memcpy(ppstr[j], pchar+num,i - num);
j++;
num = i+1;
}
i++;
ppchar++;
}
for (i = 0; i < j; i++)
{
printf("%s\n", ppstr[i]);
}
free(pstr);
free(ppstr);
return;
}
Ⅱ C语言读取csv大文件以及结果的存储问题
你用C还是C++,MFC有文本库的,若用C,处理汉字较困难
可以一次读完文件,再处理
不定长度的数据用数组,动态内存分配都可以,反正现在内存大小应该不是问题