我明明在我指定的路径下放了这个文件,可是一下程序的结果却显示说文件不存在。请大侠指点一下问题出在哪儿?
代码如下:
#include<stdio.h>
#include<stdlib.h>
void main()
{
FILE *fp;
int i=0;
float x[5];
fp=fopen("C:\vc98\shuju.txt","r");
if(fp==NULL) {printf("没有这个文件\n"); exit(0);}
fread(x,4,5,fp);
for(i=0;i<=5;i++)
printf("%.3f\n",x[i]);
fclose(fp);
}
还有就是,我想读取很多数据给一个数组,但是文本文档上的这些数据是用空格隔开的,我怎么才能之都数据不读空格呢???
恳请高人细心指导!!!!!急。
我的数据都是一些实数型变量;刚才解决了路径问题。现在读进去的数据我把他们输出数来是错的。你看代码:
#include
#include
void main()
{
FILE *fp;
int i=0;
float x[5];
fp=fopen("C:\\vc98\\shuju.txt","r");
if(fp==NULL) {printf("没有这个文件\n"); exit(0);}
fread(x,4,5,fp);
for(i=0;i<=5;i++)
printf("%.3f\n",x[i]);
fclose(fp);
}
这样得到的结果都是零。
因为你从文件里读取的全部是字符串!
char x[5];
我想读入float数据该用什么函数呢? 另外可以不读取其中的空格。能不能详细点儿?
刚才解决了路径问题。现在读进去的数据我把他们输出数来是错的。你看代码:
#include
#include
void main()
{
FILE *fp;
int i=0;
float x[5];
fp=fopen("C:\\vc98\\shuju.txt","r");
if(fp==NULL) {printf("没有这个文件\n"); exit(0);}
fread(x,4,5,fp);
for(i=0;i<=5;i++)
printf("%.3f\n",x[i]);
fclose(fp);
}
文档数据全是实数形,数据之间是空格隔开的。这该怎么解决呀?
fread?
是你这么用的吗?你翻一下函数手册吧,fread并不判断Float类型,读出来的就是字串。
int fscanf(FILE *stream, char *format,[argument...]);
那在文本上读取实数型数据该怎么读呢?我看的书上没有讲关于这方面的。如果没有这方面的函数是不是可以自己定义一个呀? 具体编这个函数时要注意什么? 真心希望您能指点一下,一定不胜感激。
追答fscanf(fp,"%f %f %f %f %f",&x[0],...)
好久没用了,记得要加&的