C语言问题,如何读取txt文件的矩阵

matrix.txt 中有1个3x3的矩阵
010
101
我想要读出这3个矩阵并显示出来应该怎么写?
要求用
file=fopen("matrix.txt","r")
fscanf(file, "%d", &....)

我的代码是这样写的
myfile_2 = fopen("Patterns.txt","r");
for (i=0; i<3; i++)
{
for (j=0; j<3; j++)
{
fscanf(myfile_2, "%d", &pat_1[i][j]);
printf("%d", &pat_1[i][j]);

}
fscanf(myfile_2, "\n");
printf("\n");
}
运行出来的结果如图,完全不对,求教

可以按照如下几步操作来读取矩阵。

1 确定文件名。

2 打开文件,使用fopen函数。

fopen("文件名", “r”);

3 根据约定的文件格式,包括文件中矩阵规模,元素的类型,以及元素分隔的符号,采用fscanf函数循环读入矩阵。

4 判断文件是否读完,如未读完,重复第三步直到读完。

5 关闭文件。


举例说明:

文件名为in.txt, 文件中存有若干行整型数据,每行3个元素,元素间以空格分隔。即存有一个3*n的矩阵,n值不定,约定最大为100行。

代码如下:

int a[100][3];//定义矩阵
int lines=0;//矩阵行数
void matrix_read()()
{
    FILE *fp;
    int i;
    fp = fopen("in.txt", "r");//打开文件
    if(fp == NULL)//打开失败
        return;
    while(lines < 100)
    {
        for(i = 0; i < 3; i ++)
            if(fscanf(fp, "%d",&a[lines][i]) == EOF) break;//读取数据
        if(feof(fp)) break;//判断是否文件结束。
        lines++;//读取一行成功,增加行数。
    }
    fclose(fp);//关闭文件。
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-10-22
你好!
fscanf 读取文件的时候,是以空格作为分割符号的,所以你的数字之间要有空格;
如果你的数字间没有空格,那么读取的时候,就会按照一个数来读取;
第2个回答  2015-05-23
1),使用fopen函数打开指定txt文件。
2),根据矩阵的空格符和换行符,使用一个循环whilte(scanf()!=EOF)分别读取每行数据。
3),读取的过程当中,记录该矩阵的行数(换行符),列数(空格符)。
4),根据需要,把矩阵放入一个一维数组或者二维数组当中。
第3个回答  2013-10-21
把文件中的数字改成这种形式的,每个数之间都有空格,就可以了。
0 1 0
1 0 1
1 1 1追问

不行啊,加了空格还是一样。

第4个回答  推荐于2017-10-05
printf("%d", pat_1[i][j]);
printf("%d", &pat_1[i][j]);打印的是地址。
要考虑到txt文件里的换行,并且同行里整数之间要用空格隔开。追问

谢谢,按你说的成功了。
但是我想多问一个问题,为什么数字间要空格?

追答

如果不加,那数字都连起来成为一个数了,而不是分开的几个数

本回答被提问者采纳

C语言问题,如何读取txt文件的矩阵
1 确定文件名。2 打开文件,使用fopen函数。fopen("文件名", “r”);3 根据约定的文件格式,包括文件中矩阵规模,元素的类型,以及元素分隔的符号,采用fscanf函数循环读入矩阵。4 判断文件是否读完,如未读完,重复第三步直到读完。5 关闭文件。举例说明:文件名为in.txt, 文件中存有若干行整型数据...

c语言如何从文件中读入矩阵,存入二维数组?
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语言 从txt中读入矩阵 并且存储在一个二位数组中,
这个程序满足需求,1000*1000可能太大了,程序现在是可以读写10*10大小的,你可以根据可以修改,个人感觉500*500已经很大了,这个参数你自己再设定注意txt文件的内容是10个字符型一列,10行,没有空格 \/* Note:Your choice is C IDE *\/ include "stdio.h"include "string.h"void READDAT(char (*...

跪求高手帮忙设计c语言程序,其中包括 读取txt文件 三阶矩阵乘法,急用啊...
j,k,n;char ch;double a[3][3],b[3][3],c[3][3];if((fp=fopen("juzhen.txt","r+"))==NULL){fprintf(stderr,"Can't open the file\\n");exit(1);}printf("请输入要相乘的次数n:");while(((scanf("%d",&n))!=1)||(n<0)){while((ch=getchar())!='\\n'){conti...

怎样把txt文件上的矩阵数据导入C语言
matrix[i] = (int*)malloc(n*sizeof(int));} 然后就把matrix当成是int [m][n]用了 用完这样释放 for (i = 0; i < m; i++){ free(matrix[i]);matrix[i] = NULL;\/\/这句可以不要 } free(matrix);读数据应该会吧,用fscanf 具体就不写了因为弄不懂你的格式 大哥你没说清楚啊,8...

怎样用C语言提取txt中二维数据,然后输出到excel中制作成一个邻接...
这应该是图论里的比较典型的通路问题,将所有的数据存到一个二维数组a[90][90],这个数组全部初始化位0,然后根据输入操作,比如输入1,75那么a[0][74] = 1;然后用Warshall算法求矩阵的传递闭包即可!相关资料自己查阅一下,慢慢研究!祝早日成功!

c语言读取txt文件中的数字出错
把a改成unsigned int类型,把读取\/输出a的地方,把%d改成%u即可。

用力c语言编程浏览一个矩阵怎么编?
参考代码如下,希望对你有帮助。include <stdio.h> int main(){ int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};int i,j;printf("浏览矩阵如下:\\n");for(i=0;i<3;i++){ for(j=0;j<4;j++)printf("%4d",a[i][j]);putchar(10);} return 0;} ...

C语言用文件读取的矩阵相乘怎么写?
void read(int x[2][2],int n){ int i,j;for(i=0;i<n;i++)for(j=0;j<2;j++)scanf("%d",&x[i][j]);} void outs(int a[2][2],int n){ int i,j;for(i=0;i<n;i++){ for(j=0;j<n;j++)printf("%d ",a[i][j]);puts("");} } void multi(int a[2]...

如何读取jpg的矩阵
1、首先jpg是面向连续色调静止图像的一种压缩标准,可在c语言程序中读取。2、其次点击“imread”命令,点击图片读取成数值矩阵。3、最后显示的数值即是矩阵的读取值。

相似回答