1、读取txt、csv等文件中ed数据并保存到二维数组中 1.建立变量,和存储数据的数组并为其分配存储空间和初始化; 2.读取文件到文件指针中,并检测是否成功读取; 3.依次读取文件中的字符,并将字符合并,当遇到分隔符逗号时,将合并的字符转换成数据,重置变量,读取下一个字符,合并字符...依次类推; 4.遇到换行符需要调整二维数组的下标; 5.使用完二维数组之后,释放二维数组所占用的存储空间 6.关闭文件指针
 FILE *fp ;//新建一个文件指针
int MuraWidth=3240;//1920*720 Global demura
int MuraHeight=960;//1920*720 Global demura
int numCount=0;
int rows=0;
int cols=0;
// int csvdata[100][100];//当二维数组过大时,这样定义二维数组会报错
int *Data8bit[960];
char c;
char s[30]={0};//csv grid data length is small than 30

//二维数组分配内存空间以及初始化//
for(i = 0;i < MuraHeight ;i++)
{
Data8bit[i] = (int*) malloc(MuraWidth*sizeof(int));

}
for(i=0;i < MuraHeight;i++)
{
for(j=0;j < MuraWidth;j++)
{
Data8bit[i][j] = 0;
} 
}

//读取txt或者csv等文件放入到文件fp中//
fp = fopen("example8Bitdata.txt", "r"); //or csv
if(fp == NULL)
{
printf("file can not be opened or is not correct\n");  
exit(0);  

}

while((c=getc(fp))!=EOF)
{
if (c==','||c=='\n')
{
numCount=0;
Data8bit[rows][cols]=atoi(s);//convert the string to float
cols++;
memset(s,0x00,sizeof (char) * 30);//Reinitial the string
if (c=='\n')
{
rows++;
cols=0;
}
continue;
}
else
{
s[numCount]=c;
numCount++;
}
} 
//..............//
//使用完二维数组之后,释放二维数组所占用的存储空间//        
for(i = 0;i < MuraHeight;i++)
{
free(Data8bit[i]);

}
//关闭文件指针//////////////////////
fclose(fp);