如何用C语言将一个txt文件放到一个二维数组中?

[复制链接]
查看11 | 回复1 | 2011-5-16 10:45:52 | 显示全部楼层 |阅读模式
如何用C语言将一个txt文件放到一个二维数组中?
txt中的每一行都是1,2,3,这样的格式?
我要具体的代码,在线等,谢谢!!!!!
回复

使用道具 举报

千问 | 2011-5-16 10:45:52 | 显示全部楼层
#includestdio.h
#includestdlib.h
/*
1.txt

1,2,3,4,5,6,7
8,9,10,11,12,13,14
15,16,17,18,19,20,21

*/
intmain()
{
        FILE*fp;
int**a;//定义二维数组
inti,j;
        introw=0,column=0;//行,列
charch;

        //打开文件
        if((fp=fopen(\"1.txt\",\"r\"))==NULL)
        {
                printf(\"openerror\\n\");
                return1;
        }

        //统计列数
while(!feof(fp)

        column;
        if(column==1)
        {
                printf(\"nodata\\n\");
                return1;       
        }
        //置文件首部
        fseek(fp,0L,0);
        //统计行数
        while(!feof(fp))
                if(fgetc(fp)==\'\\n\')
                        row;
        row;
        if(row==1)
        {
                printf(\"nodata\\n\");
                return1;       
        }

        //开辟内存
a=(int**)malloc(sizeof(int*)*row);
        if(a==NULL)
        {
                printf(\"nomemory\\n\");
                return1;       
        }
        for(i=0;irow;i)
        {
                a=(int*)malloc(sizeof(int)*column);
                if(a==NULL)
                {
                        printf(\"nomemory\\n\");
                        return1;       
                }
        }

        //置文件首部
        fseek(fp,0L,0);
        //读入数据
        while(!feof(fp))
        for(i=0;irow;i)
                for(j=0;jcolumn;j)
                        fscanf(fp,\"%d,\",

        //输出显示
        for(i=0;irow;i)
        {
                for(j=0;jcolumn;j)
                        j==column-1?printf(\"%d\",a[j]):printf(\"%d,\",a[j]);
                printf(\"\\n\");
        }

        //关闭文件
        fclose(fp);

        //释放内存
        for(i=0;irow;i)
                free(a);
        free(a);

        return0;

}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行