c语言 怎么从文件中读入数据存储到二维数组中

我要从一个文件中读入数据,并存储到一个二维数组中去,用c语言怎么实现? 哪位大侠指点一下啊? 最好有源代码给我。

第1个回答  2008-05-08
示例数据文件(c:\data.txt):
1 2 3 4 5
11 22 33 44 55 6
111 222 333 444 555 666 7

程序:

//---------------------------------------------------------------------------

#include <stdio.h>
#include <stdlib.h>
#define FILE_DATA "C:\\DATA.TXT"/*数据文件名*/
#define DFM "%d" /*DFM为文件中所含数据的格式控制符*/
#define PDFM DFM##"\t"
typedef int DTP; /*DTP文件中所含数据的类型*/

int main(void)
{
FILE *fp;
char tmp[255],ch;
DTP **da,tda;
int i=0,j=0;
fp=fopen(FILE_DATA,"r");
da=malloc(sizeof(DTP *)*1);

while (!feof(fp))
{
fscanf(fp,"%*[^0123456789.]%[0123456789.]",tmp);
ch=fgetc(fp);
sscanf(tmp,DFM,&tda);
if (ch!=EOF){
da[i]=realloc(da[i],sizeof(DTP)*(j+1));
da[i][j++]=tda;
tda=da[i][j-1];
}
if (ch=='\n'||ch==EOF) {
da[i]=realloc(da[i],sizeof(DTP)*(j+1));
da[i][j]=-1;
i++;
j=0;
da=realloc(da,sizeof(DTP *)*(i+1));
da[i]=NULL;
}
}
for (i = 0; da[i]!=NULL; i++) {
for (j=0; da[i][j]!=-1; j++) {
printf(PDFM,da[i][j]);
}
putchar('\n');
}
fclose(fp);
free(da);
return 0;
}
//---------------------------------------------------------------------------
第2个回答  2008-05-08
fopen(fp,"your.txt","w");//打开文件
#define maxn yournumber
int s[maxn][maxn];
int i,j;
for(i=0;i<maxn;i++)
for(j=0;j<maxn;j++)
fscanf(fp,"%d",&s[i][j]);本回答被提问者采纳
第3个回答  2008-05-08
C语言有那个读文件库函数的,如果没有下到,就要自己写。可以按字符文件的方法读入,然后再识别,再转入你要存的数组。
第4个回答  2008-05-08
int readdat(){
FILE *in;
int i,j;
in=fopen("in.txt","r");
if(in==NULL)
printf("NULL");
else{
for(i=1;i<n+1;i++)
{ for(j=1;j<=2;j++)
{fscanf(in,"%d",&aa[i][j]);
printf("%d",aa[i][j]);
}
printf("\n");
}
用这个函数就可以了,呵呵
相似回答