Ⅰ 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,處理漢字較困難
可以一次讀完文件,再處理
不定長度的數據用數組,動態內存分配都可以,反正現在內存大小應該不是問題