码迷,mamicode.com
首页 > 编程语言 > 详细

C语言之文件操作05——矩阵(数据)的读取方法

时间:2015-08-18 21:31:04      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:c语言   文件操作   读取文件   读取数组   数组保存   

//数据读取
/*
===============================================================
题目:从test.txt中读出矩阵A,B,并计算它们的乘积,输出到屏幕!
===============================================================
*/
#include<stdio.h>
#define M 3
#define N 5
void main()
{
FILE *fp;
int a[M][N],b[N][M],c[M][M];
int i,j,k;
fp=fopen("D:\\test.txt","r");
if(fp==NULL)
printf("文件打开失败!\n");
else
{
//读入A,就像正常写入一样,把scanf换成fscanf
printf("读取矩阵A:\n");
for(i=0;i<M;i++)
for(j=0;j<N;j++)
fscanf(fp,"%d",&a[i][j]);
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
printf("%3d ",a[i][j]);
printf("\n");
}

//读入B,就像正常写入一样,把scanf换成fscanf
printf("读取矩阵B:\n");
for(i=0;i<N;i++)
for(j=0;j<M;j++)
fscanf(fp,"%d",&b[i][j]);
for(i=0;i<N;i++)
{
for(j=0;j<M;j++)
printf("%3d ",b[i][j]);
printf("\n");
}
fclose(fp);
//二维矩阵的乘法
printf("矩阵A与B乘积:\n");
for(i=0;i<M;i++)
for(j=0;j<M;j++)
{
c[i][j]=0;
for(k=0;k<N;k++)
c[i][j]+=a[i][j]*b[j][i];
}
//输出
for(i=0;i<M;i++)
{
for(j=0;j<M;j++)
printf("%5d ",c[i][j]);
printf("\n");
}
}
}
/*
========================================================================
评:

二维数组的读取实际上还是一个一个的取出数字,即a[i][j];fscanf(fp,"%d",&a[i][j]);另外要注意读

出时用“r”!保存数据时尽可能不要参杂其他字符,一组数据用一个文件单独保存,以保证数据的可

读性。

========================================================================

*/

技术分享

技术分享


版权声明:博主文章可以被非商用转载,但请务必注明出处,因水平有限,难免出错,在此免责。

C语言之文件操作05——矩阵(数据)的读取方法

标签:c语言   文件操作   读取文件   读取数组   数组保存   

原文地址:http://blog.csdn.net/lzx19901012/article/details/47757575

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!