C语言问题 二维数组

2024-11-16 06:47:50
推荐回答(2个)
回答(1):

#include
#include

//这里假设1行最多100个字符
#define MAXLINE 100

int main()
{
//定义3组接收数组,每组最多1000行数据,最行最多MAXLINE个字符
char result[3][1000][MAXLINE]={0};
//打开文件,假设在d盘根目录下
FILE *fp;
fp=fopen("D:\\ICC1.Q7","r");
if(fp==NULL)
{
printf("打开文件错误");
return 0;
}
char line[MAXLINE]={0}; //接收文件数据,以行为单位
int segment=0; //定义段落,一共有3个
int i; //循环用
int j=0; //result行数
while( fgets(line,MAXLINE,fp)!=NULL )
{
int k=0; //result列数
if(line[0]=='E') //如果为END
{
segment++;
j=0;
continue;
}
if(line[0]!='0'&& line[0]!='1') //如果不为字符0或1,跳出
continue;
for(i=0;i {
if(line[i]=='0' || line[i]=='1')
{
result[segment][j][k]=line[i];
k++;
}
if(line[i]=='%') //字符%
break;
}
j++;
}
fclose(fp);

//查看结果数据
for(i=0;i<3;i++)
{
j=0;
while(result[i][j][0]!=0)
{
printf("%s\n",result[i][j]);
j++;
}
printf("\n");
}

return 0;
}

回答(2):

fsanf可以实现你的要求