C语言如何读取TXT文件并存入数组中?

我现在有一个TXT文件,其中格式为(并且格式确定)12233445566778899100然后我想用C语言读取这这个文件,然后把这些数据存在一个data[3][3]的in... 我现在有一个TXT文件,其中格式为(并且格式确定)
1
22 33 44
55 66 77
88 99 100
然后我想用C语言读取这这个文件,然后把这些数据存在一个data[3][3]的int二维数组中,请问各位应该如何操作啊?谢谢大家了。
展开
 我来答
cdyzxy
推荐于2017-09-12 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.4万
采纳率:85%
帮助的人:3716万
展开全部
不知道第1行的单独1是做什么的
#include<stdio.h>
#define M 3
#define N 3
void main()
{ FILE *fp;
int a[N][M],i,j;
char buffer[256];
if ( fp=fopen("data.txt","r") )
{ fgets(buffer,255,fp); //把第1行读成字符串,也可以考虑用fscanf将1读到变量中
for ( i=0;i<N;i++ ) for ( j=0;j<M;j++ ) fscanf("%d",&a[i][j]);
fclose(fp);
}
for ( i=0;i<N;i++,printf("\n") ) for ( j=0;j<M;j++ ) printf("%d ",a[i][j]);
}
追问
谢谢你啦!第一行是这个文件的序列号。fgets(buffer,255,fp)这句是只读了文件的第一行吗?然后for ( i=0;i<N;i++ ) for ( j=0;j<M;j++ ) fscanf("%d",&a[i][j]);
fclose(fp);这句读出的剩下三行吗?那为什么i和j都是从0开始呢?
追答
fgets是读取一行,按照程序中写法是读取一行遇到换行结束,或者字符数达到255个时结束;
下面就是连读9次(MxN=9)分别放入a数组(fscanf的执行次数是9)
分别读入:
a[0][0],a[0][1],a[0][2] i=0时,j=0~2
a[1][0],a[1][1],a[1][2] i=1时,j=0~2
a[2][0],a[2][1],a[2][2] i=2时,j=0~2
由于访问a数组的第1个下标由i控制(i行),第2下标由j控制(第j列)所以你看到i和j的起始值均为0,结束值就是行数和列数,这样外循环i对应的每个值内循环分别访问这行的每个列,从而实现对整个数组的顺序访问、赋值。后面的printf也一样,每行结束还输出换行
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式