永发信息网

C语言读取文件中数字并且转为二维数组

答案:3  悬赏:10  手机版
解决时间 2021-11-14 14:42
C语言读取文件中数字并且转为二维数组
最佳答案
1、使用双层循环语句,就可以依次把数据顺序读入到一个二维数组当中了。
  2、例程:
#include 
#include 
#define MAXLINE 3
#define MAXCOLUMN 10
void main(void){
    FILE *fp; //文件指针
    char arr[MAXLINE][MAXCOLUMN]={0};  //定义3行10列的二维数组并初始化
    int i = -1;
    if((fp=fopen("./test/filename.txt","r"))==NULL){ //打开txt文件
        perror("File open error!
");
        return;
    }
    while((fgets(arr[++i],MAXCOLUMN+1,fp))!=NULL) //读取一行并存到arr数组
        printf("%d: ",i); //打印行号
        //puts(arr[i]);
        char *subarr = strtok(arr[i]," ");  //以空格为分隔符从arr[i]中获得字串
        while(subarr!=NULL){
            data[i][j] = atoi(subarr);  //将字串转为int型数据存入data数组
            printf("%d ",data[i][j]);  //打印data[i][j
            subarr = strtok(NULL," ");  //继续获得arr[i]中的字串
            j++;  //data数组列加一
        }
        printf("
");    
    }
    //循环完毕后,所有数据已在data数组中
    printf("
");
    fclose(fp);  //关闭指针
}
全部回答
可以用两个 for循环来读取
第一个for循环读取文本的行,第二个for循环来读取以“”分割的字符串的列追问需要详细代码
#include "stdio.h"
int main()
{
double a[50][50]={0};
int i,j;
FILE *fp;
if((fp=open("data.txt","r"))==NULL)
{
printf("File open failed !\n");
return 1;
}
for(i=0;i<50;i++)//读取
for(j=0;j<50;j++)
fscanf(fp,"%lf",&a[i][j]);
for(i=0;i<50;i++)//显示
{
for(j=0;j<50;j++)
printf("%.4lf ",a[i][j]);
printf("\n");

}
fclose(fp);

}
只要能读到数据,其它操作就相对简单了。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
100万伏交流特高压电线下面木柄锄头杆为什么
若n是正整数,试猜想1的三次方 2的三次方 3的
求离开微信一段时间的留言
星月菩提子玩了2个多月了,只是不是天天玩,
4mm厚的铝板开M3螺纹孔可行吗?
微波炉能不能用一次性的纸盘
星魂传说 关于星魂的品质 可不可以把蓝色的变
邢窑白瓷瓷器值多少钱,成交记录
神州租车(石桥铺电脑城服务点)地址好找么,我
一个鱼塘要容纳15000立方水,平均抽水机,每小
如何查找CO88有没有全部把工单结算出差异?!
my sunshine翻译为韩语
粉笔的发展历史
50.60.70.80.90.100.分别填入三角圈内得出来
电脑每天半夜自动重启。。。
推荐资讯
求问一首歌,看歌词猜歌名。。
自考本科为了什么?
语文教材应该与时俱进还是传颂经典?
文乃的幸福理论 日文+中文+罗马音 罗马音求分
帮车惠9.9洗车好吗?
旱水稻种植到收获需多少天?什么时候种植
如何写公司的简介
查定征收和查验征收的税收征收方式有什么区别
340÷5除以,百分之八十五怎么算?
亲,小天鹅6Kg全自动洗衣机显示代码F8故障是
原点的意思是什么
描写秋天玉米的句子
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?