fp为什么文件一直找不到

如题所述

问题应该在这个路径上:"\\my program\\1.txt"。

从你给的路径看出,你要读取的文件就在你的程序目录下。
如果才猜的没错的话,你的路径应该像下边这么写:
1、直接就写文件名"1.txt",这样程序就会直接去程序目录下去找文件
2、给出要读取文件的全路径,也就是带盘符的目录,像这样"c:\\my program\\1.txt".

因为你没出给程序,所以不好直接找出原因,只能推断一下,你可以试试。
------------------------------------
你调试了吗? 你修改后fp的值还是0x00000000吗?
如果不是,那就说明读文件没有问题了。

至于出现"my program遇到问题需要关闭"的错误,那说明你使用非法指针。
------------------------------------
那就是你设定的文件路径还有问题,不知道你是怎么设置的喽。
把你修改后文件路径贴出来看看。
------------------------------------
这个语句:fp=fopen("my program\\1.txt","r");

上边不是告诉你改成fp=fopen("1.txt","r"); 或者全路径了吗?
你没这样做?
------------------------------------
fscanf(fp,"%c",p->id[i++]);这中情况下,变量前边是要加&的,也就是fscanf(fp,"%c",&p->id[i++]);。

还有fscanf(fp,"%c",p->password[i++]);也一样
------------------------------------
>>屏幕上有"屯屯屯"啥的
这说明你读取的数据区域有问题,导致没有读到正确的值。

>>还是遇到问题需要关闭
这说明你在指针操作时,出现了非法指针。

>>读下一行可以直接 fp++吗?
当前不可以了,fp这个指针是指向打开文件的。你要是改变了,他就找不到打开的文件了。

你要用fscanf()读取文件的话,可以直接用循环就可以了,像下边这样:
while(!eof(fp))
{
fscanf(...);
}

这样就会每循环一次,读取一行,知道文件末尾。eof(pf)就是判断文件末尾的

>>还有我读96.4这样的FLOAT格式写入的数据用FP读出来也成了字符串
你是用字符串,也就是%s读取的吧?如果这样读取,那肯定就是字符串了。
如果要读取float数据,就需要使用%f读取。
温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网