#includestdio.h
#includestdlib.h
/*
1.txt
1,2,3,4,5,6,7
8,9,10,11,12,13,14
15,16,17,18,19,20,21
*/
intmain()
{
FILE*fp;
int**a;//定义二维数组
inti,j;
introw=0,column=0;//行,列
charch;
//打开文件
if((fp=fopen(\"1.txt\",\"r\"))==NULL)
{
printf(\"openerror\\n\");
return1;
}
//统计列数
while(!feof(fp)
column;
if(column==1)
{
printf(\"nodata\\n\");
return1;
}
//置文件首部
fseek(fp,0L,0);
//统计行数
while(!feof(fp))
if(fgetc(fp)==\'\\n\')
row;
row;
if(row==1)
{
printf(\"nodata\\n\");
return1;
}
//开辟内存
a=(int**)malloc(sizeof(int*)*row);
if(a==NULL)
{
printf(\"nomemory\\n\");
return1;
}
for(i=0;irow;i)
{
a=(int*)malloc(sizeof(int)*column);
if(a==NULL)
{
printf(\"nomemory\\n\");
return1;
}
}
//置文件首部
fseek(fp,0L,0);
//读入数据
while(!feof(fp))
for(i=0;irow;i)
for(j=0;jcolumn;j)
fscanf(fp,\"%d,\",
//输出显示
for(i=0;irow;i)
{
for(j=0;jcolumn;j)
j==column-1?printf(\"%d\",a[j]):printf(\"%d,\",a[j]);
printf(\"\\n\");
}
//关闭文件
fclose(fp);
//释放内存
for(i=0;irow;i)
free(a);
free(a);
return0;
} |