C语言在读取文件的时候显示文件不存在????

我明明在我指定的路径下放了这个文件,可是一下程序的结果却显示说文件不存在。请大侠指点一下问题出在哪儿?
代码如下:
#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);
}
还有就是,我想读取很多数据给一个数组,但是文本文档上的这些数据是用空格隔开的,我怎么才能之都数据不读空格呢???
恳请高人细心指导!!!!!急。

第1个回答  2011-08-23
1.书写格式错误
fp=fopen("C:\\vc98\\shuju.txt","r");
注意使用了转义字符“\",具体原因请参考课本
2.要看你的数据的格式,如果你所有的数据长度都是统一的,是可以用read实现读取固定长度的数据进数组的。
但是如果你的数据长度不统一,有长有短,那么只能通过读取数据,然后对读取的数据处理,得到需要的数据放到数组中。追问

我的数据都是一些实数型变量;刚才解决了路径问题。现在读进去的数据我把他们输出数来是错的。你看代码:
#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数据该用什么函数呢? 另外可以不读取其中的空格。能不能详细点儿?

第2个回答  2011-08-23
你的文件地址错了,应该是C:\\vc98\\shuju.txt C语言中的斜杠的表示方法应该为\\
单个斜杠是转义字符
后面那个循环中应该是i<5不是i<=5,数组下标从0开始哦!
第3个回答  2011-08-23
fp=fopen("C:\\vc98\\shuju.txt","r");追问

刚才解决了路径问题。现在读进去的数据我把他们输出数来是错的。你看代码:
#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],...)
好久没用了,记得要加&的

本回答被提问者采纳