第1个回答 2010-11-08
//先把文本里的字符读到字符数组temp中再做后续处理
#include<stdio.h>
#include<stdlib.h>
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<stdio.h>
#include<stdlib.h>
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");
}
}
第2个回答 2010-11-08
#include <stdio.h>
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;
}本回答被提问者采纳