- 论坛徽章:
- 0
|
最近写一个将csv文件中的内容按照','分割后,存入数组中。代码中的fp为csv文件句柄。
请大侠们帮忙看看代码中两处打印为什么会不一致,谢谢!
char *array[100][15];
char *rowBuf[256];
while(fgets(rowBuf, 256, fp) != NULL)
{
if(rowBuf[0] != '#')
{
splitContent(rowBuf, array[in], ",");
printStrContent(array[in], 15);——程序此处打印结果与CSV文件中的内容一致
in ++;
}
}
int j = 0;
for(j = 0; j < in; j++)
{
printStrContent(array[j], 15);——但是,此处打印结果就没有规律,与CSV文件完全不符合
}
/*
**显示二维字符数组
*/
void printStrContent(char *content, int row)
{
int i = 0 ;
for( i = 0; i < row; i++)
{
printf("%s ", content + i);
}
}
/*
**将CSV文件每个单元格中的内容存入字符串数组
*/
void splitContent(char *buff, char *array[], char *limit)
{
char *p = buff;
int i = 0;
char *ptr;
while((array[i] = strtok_r(p, limit, &ptr)) != NULL)
{
i++;
p = NULL;
}
}
|
|