C语言如何将文本文件中的数据读到二维数组中?

2024-12-01 19:29:28
推荐回答(3个)
回答1:

C语言中从.txt文本文件中按行读取字符串数据至二维数组中,代码如下:

#include  
main() 

    char s[10][20] = {0};  //定义一个二维数组
    int i=0;  
    FILE *fp; //文件指针
    fp = fopen("1.txt","r"); //读取文本文件1.txt
    for(i=0;i<3;i++) 
    {  
        fscanf(fp,"%s",s[i]); 
        printf("%s\n",s[i]); //打印数据到二维数组中
    } 
}

回答2:

//先把文本里的字符读到字符数组temp中再做后续处理
#include
#include
void main()
{
int a[5][3]={0};
char temp[80]={'\0'};
int i=0,j=0,k=0;
FILE *fp;
if((fp=fopen("DATA.txt","r"))==NULL)
{
printf("cannot open this file\n");
exit(0);
}
else
while(!feof(fp))
{
temp[i]=fgetc(fp);
i++;
}
fclose(fp);
for(j=0;j<3;j++)
{
for(i=0;i<5;i++)
{
while(temp[k]!=' '&&temp[k]!='\n'
&&int(temp[k])!=-1)
{
a[i][j]=a[i][j]*10+(temp[k]-'0');
k++;
}
if(int(temp[k])==-1)
break;
if(temp[k]==' ')
k++;
if(temp[k]=='\n')
k++;
}
if(int(temp[k])==-1)
break;
}
for(j=0;j<3;j++)
{
for(i=0;i<5;i++)
printf("%d\t",a[i][j]);
printf("\n");
}

}

#include
#include
void main()
{
int a[5][3]={0};
char temp[80]={'\0'};
int i=0,j=0,k=0;
FILE *fp;
if((fp=fopen("DATA.txt","r"))==NULL)
{
printf("cannot open this file\n");
exit(0);
}
else
for(j=0;j<3;j++)
for(i=0;i<5;i++)
fscanf(fp,"%d",&a[i][j]);
fclose(fp);
for(j=0;j<3;j++)
{
for(i=0;i<5;i++)
printf("%d\t",a[i][j]);
printf("\n");
}
}

回答3:

#include
int main(void)
{
FILE * f = 0; int a[5][5]; int i,j;
f = fopen("a.txt", "r");
if(!f) return 0;
for(i = 0; i < 5; i++) for(j = 0; j < 5; j++)
fscanf("%d", &(a[i][j]));
/*已经读完了*/
fclose(f);
return 0;
}