社区
C语言
帖子详情
请教C语言中如何读取矩阵形式的数据文件?
copyleft007
2005-12-08 09:04:28
比如有个txt文件,存有矩阵形式的数据文件数据如下:
1.1 1.2 1.3
2.1 2.2 2.3
3.1 3.2 3.3
4.1 4.2 4.3
在不知道这个矩阵行数的情况下,如何读取这个文件,以便把这个矩阵的数据赋给一个二维数组(比如a[N][3]?
谢谢大家了
...全文
990
16
打赏
收藏
请教C语言中如何读取矩阵形式的数据文件?
比如有个txt文件,存有矩阵形式的数据文件数据如下: 1.1 1.2 1.3 2.1 2.2 2.3 3.1 3.2 3.3 4.1 4.2 4.3 在不知道这个矩阵行数的情况下,如何读取这个文件,以便把这个矩阵的数据赋给一个二维数组(比如a[N][3]? 谢谢大家了
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
copyleft007
2005-12-11
打赏
举报
回复
嘻嘻,分数已经给了二楼的朋友了,请接收
guyanhun
2005-12-10
打赏
举报
回复
在这个页面的右上角有个 管理 的链接,点击进入 给分 *_*
copyleft007
2005-12-10
打赏
举报
回复
farger(发哥) ( )
已经说了,预先不知道矩阵行数,只知道列数。
其实也就是采集的某一个系统随着时间变化的参量。所以是预先不知道会采集到多少组数据的。不过也多谢了
copyleft007
2005-12-10
打赏
举报
回复
多谢“guyanhun(天涯-明月 C++从头开始) ”的帮助
可以运行了,请问如何给分呢?
zhanlinzhangna520
2005-12-09
打赏
举报
回复
这个问题很好解决,可以用一个(*p)[3]指向含3个元素的一维数组的指针变量,前面的指针行移动,后面的数值指向列,这样在不知道行的情况下,没关系的,用个循环语句就够了,程序自己写了。
zhanlinzhangna520
2005-12-09
打赏
举报
回复
这个问题很好解决,可以用一个(*p)[3]指向含N个元素的一维数组的指针变量,前面的指针行移动,后面的数值指向列,这样在不知道行的情况下,没关系的,用个循环语句就够了,程序自己写了。
speeches
2005-12-09
打赏
举报
回复
还得看文件的存放结构, 如 1 2 3 ...中间空格作为分割附或123没有任何分割符,
那就用fgets()一行就ok了,1 2 3 fgets()...
楼上的,这样搞会不会有问题啊..
if(fread(a[n][3], 3*sizeof(float), 1, fp) == EOF)..不考虑文件组织方式...
jixingzhong
2005-12-09
打赏
举报
回复
if(n < N-1) //文件没有全部读取就终止了,提示出错 ..
这个判断是在 N==文件的行数 的前提下的....
jixingzhong
2005-12-09
打赏
举报
回复
#define N 100
FILE *fp;
float a[N][3] ;
int n=0;
for(; n<N; n++)
{
if(fread(a[n][3], 3*sizeof(float), 1, fp) == EOF)
break;
}
if(n < N-1) //文件没有全部读取就终止了,提示出错 ..
printf("ERROR");
farger
2005-12-09
打赏
举报
回复
#define N 4
int main(int argc, char *argv[])
{
float a[N][3];
FILE *fp;
int i,j;
fp = fopen("aa.txt","r");
if(fp == NULL )
{
printf("can not open file\n");
exit(1);
}
for(i=0;i<N;i++)
for(j=0;j<3;j++)
{
fscanf(fp,"%f",&a[i][j]);
printf("%.2f ",a[i][j]);
}
system("PAUSE");
return 0;
}
guyanhun
2005-12-09
打赏
举报
回复
copyleft007(版权所无)
二楼的朋友,请你看看用你的方法写的程序,为何在vc下就是读取不出来呢?
现在的可以.
guyanhun
2005-12-09
打赏
举报
回复
#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");
}
copyleft007
2005-12-09
打赏
举报
回复
劳烦大家把数据保存在aa.txt文件中,把自己的完整可编译读取的程序贴出来。谢谢大家了
copyleft007
2005-12-09
打赏
举报
回复
三楼的朋友,为何采用你的方法读不出来呢?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 100
void main()
{
FILE *fp;
fp=fopen("aa.txt","rb");
float a[N][3] ;
int n=0;
for(; n<N; n++)
{
if(fread(&a[n][2], 3*sizeof(float), 1, fp) == EOF)
break;
printf("%f,%f,%f\n",a[n][0],a[n][1],a[n][2]);
}
if(n < N-1) //ÎļþûÓÐÈ«²¿¶ÁÈ¡¾ÍÖÕÖ¹ÁË£¬Ìáʾ³ö´í ..
printf("ERROR");
}
copyleft007
2005-12-09
打赏
举报
回复
二楼的朋友,请你看看用你的方法写的程序,为何在vc下就是读取不出来呢?
#include <stdio.h>
#include <string.h>
void main()
{
/*FILE *fp;
fp=fopen("aa.txt","rb");
float f1,f2,f3;
int n=0;
while(!feof(fp))
{
++n;
if(fscanf(fp,"%lf%lf%lf",&f1,&f2,&f3)==EOF)
break;
}
fclose(fp);
}
guyanhun
2005-12-08
打赏
举报
回复
比如a[N][3]?
FILE *fp;
float f1,f2,f3;
int n=0;
while(!feof(fp))
{
++n; //行数.就等于 a[N][3] 中 的 N .
if(fscanf(fp,"%f%f%f",&f1,&f2,&f3)==EOF)
break;
}
C语言
经典面试题 与
C语言
面试宝典
1 预处理 问题1:什么是预编译?何时需要预编译? 答: 预编译又称预处理,是整个编译过程最先做的工作,即程序执行前的一些预处理工作。主要处理#开头的指令。如拷贝#include包含的文件代码、替换#define定义的宏、条件编译#if等。. 何时需要预编译: 1、总是使用不经常改动的大型代码体。 2、程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的
最全的
C语言
试题总结
C语言
终极面试宝典_
C语言
面试必
C语言
第一部分:基本概念及其它问答题 1、关键字static的作用是什么? 这个简单的问题很少有人能回答完全。在
C语言
中
,关键字static有三个明显的作用: 1). 在函数体,一个被声明为静态的变量在这一函数被调用过程
中
维持其值不变。 2). 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问
c语言
面试题大全
C语言
面试题大汇总 4. static有什么用途?(请至少说明两种) 1.限制变量的作用域(DL:使其只在定义的当前文件
中
起作用,static是只能由与变量在同一个文件
中
定义的程序存取的全局变量。也就是说使全局变量成为文件的私有变量,以致其他文件不可以通过将它们定义为extern而存取这些变量。) 2.设置变量的存储域(DL:存储在最开始的静态存储空间里面) 7. 引用与指针有什么
C语言
面试题总结
1 预处理 问题1:什么是预编译?何时需要预编译? 答: 预编译又称预处理,是整个编译过程最先做的工作,即程序执行前的一些预处理工作。主要处理#开头的指令。如拷贝#include包含的文件代码、替换#define定义的宏、条件编译#if等。. 何时需要预编译: 1、总是使用不经常改动的大型代码体。 2、程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。在这种情况下,可以将所有包...
C语言
面试
最全的
C语言
试题总结 第一部分:基本概念及其它问答题 1、关键字static的作用是什么? 这个简单的问题很少有人能回答完全。在
C语言
中
,关键字static有三个明显的作用: 1). 在函数体,一个被声明为静态的变量在这一函数被调用过程
中
维持其值不变。 2). 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。...
C语言
69,369
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章