C语言读txt文档中的数据

fkroshan 2010-07-08 11:15:01
有个txt文档中,数据如下:
-0.16***
0.01***
0.10***
0.09***
-0.05***
-0.21***
-0.16***
-0.07***

其中*代表空格。有200000行左右的数据,但不定。
请问怎么把这些数据读到程序中,以便后面使用?
...全文
312 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuqangy 2010-07-08
  • 打赏
  • 举报
回复
为什么不直接用ifstream流?
SLSnake 2010-07-08
  • 打赏
  • 举报
回复
p是指针,不分配内存,你这么写,肯定要内存错误的,楼上的大侠们,已给出解决方法了,申请内存的话,一定要记得释放.
lylm 2010-07-08
  • 打赏
  • 举报
回复
对照看看吧,VS2008测试通过
#include <stdio.h>
void main()
{ float p[50];
int i;
long len=0;
FILE *fp;
fp=fopen("D:\\221.txt","r");
if(fp==NULL)
{ printf("Cannot open file strike any key exit!");
getchar();
//exit(0);
}
while(fscanf(fp,"%f",&p[len])!=EOF)
{ //p++;
len++;
}
fclose(fp);
for(i=0;i<len;i++)
{printf("%f\n",p[i]);
//p--;
}
}
aozhi 2010-07-08
  • 打赏
  • 举报
回复
不好意思,没太仔细看你的程序。
先读一遍文件,计件数。
然后,p=malloc(sizeof(float)*件数);
rewind后,再逐个读入。
cane1991 2010-07-08
  • 打赏
  • 举报
回复
指针p没有指向一个有效的地址,你输入的的时候肯定会报错!因为不知道你的数据要输入存放到哪~
个人认为你得先让p指针指向一个有效的地址!建议看一下c程序设计指针与数组那一章吧!
aozhi 2010-07-08
  • 打赏
  • 举报
回复
漏了p=malloc(sizeof(float));这句。
没有分配内存。
最后别忘了free掉。

或者改成
float p;
while(fscanf(fp,"%f",&p)!=EOF)
fkroshan 2010-07-08
  • 打赏
  • 举报
回复
-4楼
哦对,是要改,先谢谢了。不过还是报错,说内存不能读,什么原因呢?
aozhi 2010-07-08
  • 打赏
  • 举报
回复
while(fscanf(fp,"%f",*p)!=EOF)

while(fscanf(fp,"%f",p)!=EOF)
fkroshan 2010-07-08
  • 打赏
  • 举报
回复
能具体点不?我写了个程序,但一运行就有错。
#include <stdio.h>
void main()
{ float *p;
int i;
long len=0;
FILE *fp;
fp=fopen("D:\\211.txt","r");
if(fp==NULL)
{ printf("Cannot open file strike any key exit!");
getchar();
exit(0);
}
while(fscanf(fp,"%f",*p)!=EOF)
{ p++;
len++;
}
fclose(fp);
for(i=0;i<len;i++)
{printf("%f\n",*p);
p--;
}
}
aozhi 2010-07-08
  • 打赏
  • 举报
回复
fscanf
sujiewen 2010-07-08
  • 打赏
  • 举报
回复
一行一行读,读出来后通过strtof函数做转换,就可以
fkroshan 2010-07-08
  • 打赏
  • 举报
回复
为何我在vc上运行结果是正确的,耗时大概几秒,在TC上为何程序一直在运行,是TC下fscanf很耗时吗?

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧