此处 http://blog.sina.com.cn/s/blog_6163bdeb0100qr2r.html 有提供一种解决办法,不过需要事先知晓csv的列数。
这里补充一个 可以用来提取 csv 文件列数的 函数
int GetTotalCol (FILE* fp)
{
char strLine[2000]; //
fseek(fp,0,SEEK_SET);
fgets(strLine, 2000, fp);
int i=0,num=0;
while(strLine[i]!='\0')
{
if(strLine[i]==',') //44
num++;
i++;
}
fseek(fp,0,SEEK_SET);
return num;
}
注意这里 char strLine[2000]; 2000的选择,如果单行数据量超过此数的话,需要重新设计此函数。 比如逐个字符去读,直到读到 换行标志 。