C语言 从文件读取矩阵

有个文本如下:51001200102第一行5表示5x5矩阵从第二行开始读入,并且使得D[i][j]=D[j][i]另外D[i][i]=0最后希望输出完整的矩阵D[i][j... 有个文本如下:
5
1001
200
10
2
第一行5表示5x5矩阵
从第二行开始读入,并且使得D[i][j]=D[j][i]
另外D[i][i]=0
最后希望输出完整的矩阵D[i][j], 以及n=5

求完整的代码~~
展开
 我来答
whdbsa
2011-01-12 · TA获得超过828个赞
知道小有建树答主
回答量:687
采纳率:0%
帮助的人:547万
展开全部
void Read(void)
{
FILE *fp;
int i,j;
char s[MAX],ch;

if((fp=fopen("1.txt","r"))==NULL)
{
printf("can not open this file!\n");
exit(1);
}
row=0;
while(fgets(s,MAX,fp)!=NULL)//读行数
row++;

rewind(fp);//回文件起始位置

col=0;//读列数
while(ch!='\n')//(ch=fgetc(fp))!='\n'&&(ch=fgetc(fp))!='\r'
{
if(ch==' ')
col++;
ch=fgetc(fp);
}
col++;//补上最后一列因为最后一列后面没有空格

jz=(int**)malloc(row*sizeof(int*));//现在开始读数据到矩阵 先生成动态二维数组
for(i=0;i<row;i++)
jz[i]=(int*)malloc(col*sizeof(int));

rewind(fp);

for(i=0;i<row;i++)//矩阵读入数据
for(j=0;j<col;j++)
fscanf(fp,"%d",&jz[i][j]);

printf("文件中矩阵:\n");
for(i=0;i<row;i++)//显示矩阵
for(j=0;j<col;j++)
{
printf("%3d",jz[i][j]);
if(j+1==col)
printf("\n");
}
fclose(fp);
}//
L_o_o_n_i_e
推荐于2018-03-13 · TA获得超过4.2万个赞
知道大有可为答主
回答量:8507
采纳率:38%
帮助的人:5297万
展开全部
#include <stdio.h>
#include <stdlib.h>
void main()
{
FILE *fin;
int j,i,m;
int **D;
if ( (fin = fopen("a.dat","r"))==NULL){
printf("can not open data file\n");
exit(0);
};
fscanf(fin,"%d",&m);
D = (int **) malloc(sizeof(int *) *m);
for (j=0;j<m;j++){
D[j] = (int *) malloc(sizeof(int) * m);
}
for (j=0;j<m;j++){
for (i=0;i<m;i++) {
if ( i<=j ) {D[j][i] = 0;} else fscanf(fin,"%1d",&D[j][i]);
}
}
fclose(fin);

for (j=0;j<m;j++){
for (i=0;i<m;i++) {
if ( i<j ) D[j][i]=D[i][j];
}
}
printf("n=%d\n",m);
for (j=0;j<m;j++){
for (i=0;i<m;i++) printf("%d ",D[j][i]);
printf("\n");
}
}
==============
n=5
0 1 0 0 1
1 0 2 0 0
0 2 0 1 0
0 0 1 0 2
1 0 0 2 0
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
推荐于2016-01-28
展开全部

参考如下:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
FILE *fp;
if((fp=fopen("aa.txt","r"))==NULL)
{
printf("error in reading file !\n");
exit(1);
}
float f1,f2,f3;
int n=0;
while(!feof(fp))
{
         ++n;      
 if(fscanf(fp,"%f%f%f",&f1,&f2,&f3)==EOF)
 break;
}
fclose(fp);
printf("%d rows in the file !\n",n-1);
system("pause");
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式