C语言 中怎么将文件中的数据读取到二维数组中

0000000000000000
0000000000000000
0000000000000000
0000011100000000
0000013100000000
0000012111100000
0001114243100000
0001324611100000
0001111410000000
0000001310000000
0000001110000000
0000000000000000
0000000000000000
0000000000000000
将上面文件中的数据读取到char 型的二维数组中

1、使用双层循环语句,就可以依次把数据顺序读入到一个二维数组当中了。

2、例程:

#include <stdio.h>
#include <string.h>
#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!\n");
        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\t",data[i][j]);  //打印data[i][j
            subarr = strtok(NULL," ");  //继续获得arr[i]中的字串
            j++;  //data数组列加一
        }
        printf("\n");    
    }
    //循环完毕后,所有数据已在data数组中
    printf("\n");
    fclose(fp);  //关闭指针
}

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-02-27
#include<stdio.h>
#include<conio.h>
int main()
{
int i,j;
char c[14][17]; //主要是定义大小 行列要准确
FILE *p1=fopen("xx.txt","r");
if(!p1) //检测是否成功打开
printf("打开失败\n");
for(i=0;i<14;i++)
{
for(j=0;j<17;j++)
{
fscanf(p1,"%c",&c[i][j]); //读入字符
printf("%c",c[i][j]);
}
}
putchar('\n');
fclose(p1);
p1=0;
return 0;
}

本回答被提问者和网友采纳

C语言 中怎么将文件中的数据读取到二维数组中
1、使用双层循环语句,就可以依次把数据顺序读入到一个二维数组当中了。2、例程:include <stdio.h>#include <string.h>#define MAXLINE 3#define MAXCOLUMN 10void main(void){ FILE *fp; \/\/文件指针 char arr[MAXLINE][MAXCOLUMN]={0}; \/\/定义3行10列的二维数组并初始化 int i ...

如何用c语言读取cvs文件到二维数组里?
1、使用双层循环语句,就可以依次把数据顺序读入到一个二维数组当中了。2、例程:代码如下:include <stdio.h> include <string.h> char *trim(char *str){ char *p = str;while (*p == ' ' || *p == '\\t' || *p == '\\r' || *p == '\\n')p ++;str = p;p = str + strl...

C语言怎么读取二进制文件中的数据放到一个300×300的二维数组里面
用 fopen 打开文件时 设 "rb" --用二进制方法打开,用于读 用 fread 读取数据,函数原型是:size_t fread ( void * ptr, size_t size, size_t count, FILE * stream );各参数意义,请查编译器帮助文件,这里就不开课了。300×300 的数组需要的内存量较大,可动态分配,或用 全局量。...

c语言如何从文件中读入矩阵,存入二维数组?
using namespace std;int mat[101][101];int main(){ int n,m;\/\/行,列...int i,j;freopen("D:\\\\in.txt","r",stdin);\/\/读文件...cin>>n>>m;\/\/读入矩阵行数,列数...for(i=0;i<n;i++)for(j=0;j<n;j++)cin>>mat[i][j];return 0;} ...

分别用C语言和C++读取txt文件到一个二维数组
参考思路:打开文件,然后读入一行到字符串str里面,循环读取行即可;参考例子如下:include <stdio.h> include <stdlib.h> \/ 1.txt 1,2,3,4,5,6,7 8,9,10,11,12,13,14 15,16,17,18,19,20,21 \/ int main (){ FILE *fp;int **a;\/\/定义二维数组 int i,j;int row=0,...

如何使用C语言从TXT文件中读取如下格式的数据并存储与数组中?
1.fopen函数打开需要读取的文本,获取该文件的文件描述符 2.使用fscan()函数对文件进行读取。3.放到二维数组其实就是读取相应格式的数据,然后对应二维数组的每个位置 例如 include "stdio.h"#define M 300#define N 50void main(){ int i,j; float a[M][N]={0}; FILE *fp; if((fp=...

用c语言编写程序,把下面的数据输入到一个二维数组中
int main(int argc, const char * argv[]) { int arr[4][4]={{25,36,78,13},{12,26,88,93},{75,18,22,32},{56,44,36,58}};int i,j,temp;printf("主对角线:\\n");for(i=0;i<4;i++)printf("%d ",arr[i][i]);putchar('\\n');printf("副对角线:\\n");for(i=...

跪求C语言中怎样把很多字符串存入二维数组中,并用指针输出,急用~谢 ...
给你举个例子,这里str就是一个二维数组,我手动输入10个字符串存入该数组,然后用该二维数组的行指针输出#include<stdio.h>#include<string.h>void main(){ char str[10][20]; int i; for(i=0;i<10;i++) gets(*(str+i)); for(i=0;i<10;i++) puts(*(str+i));} 本回答由提问者推荐 举报...

c语言中,怎么输入多组字符串,放在二维数组里
2、十进制输出,在需要输出十进制数字时,可以用d 或 i 控制输出。3、八进制输出,如下所示,利用 o 或 #o 控制输出八进制格式数字。4、十六进制输出,同八进制一样,利用 x 或 #x 可以输出控制十六进制格式数字。5、 字符串输出,在C语言中输出字符串可以使用s控制。6、浮点数(单精度\/双精度...

如何用c语言读取一张24位bmp图,将颜色信息保存在二维数组中
最直接的方法就是从文件里直接读出来,文件开头会有个bitmap数据头,是个数据结构里边,有位图数据的起始偏移量,图宽度和高度(像素为单位),和大小(结构体字段格式百度就能搜到),你只要将文件流指针移动到数据起始位置,读出所有数据到数组即可。。。

相似回答