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

我要从一个文件中读入数据,并存储到一个二维数组中去,用c语言怎么实现?哪位大侠指点一下啊?最好有源代码给我。... 我要从一个文件中读入数据,并存储到一个二维数组中去,用c语言怎么实现? 哪位大侠指点一下啊? 最好有源代码给我。 展开
 我来答
匿名用户
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;
}
//---------------------------------------------------------------------------
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
无谓之光
2008-05-08 · TA获得超过383个赞
知道小有建树答主
回答量:390
采纳率:0%
帮助的人:181万
展开全部
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]);
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
spider041
2008-05-08 · TA获得超过670个赞
知道小有建树答主
回答量:243
采纳率:0%
帮助的人:206万
展开全部
C语言有那个读文件库函数的,如果没有下到,就要自己写。可以按字符文件的方法读入,然后再识别,再转入你要存的数组。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
310609010307
2008-05-08
知道答主
回答量:21
采纳率:0%
帮助的人:0
展开全部
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");
}
用这个函数就可以了,呵呵
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式