永发信息网

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

答案:3  悬赏:10  手机版
解决时间 2021-11-14 14:42
  • 提问者网友:暗中人
  • 2021-11-13 23:12
C语言读取文件中数字并且转为二维数组
最佳答案
  • 五星知识达人网友:独钓一江月
  • 2021-11-13 23:51
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);  //关闭指针
}
全部回答
  • 1楼网友:不想翻身的咸鱼
  • 2021-11-14 02:25
可以用两个 for循环来读取
第一个for循环读取文本的行,第二个for循环来读取以“”分割的字符串的列追问需要详细代码
  • 2楼网友:行雁书
  • 2021-11-14 01:26
#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);

}
只要能读到数据,其它操作就相对简单了。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯