gpfd.net
当前位置:首页 >> C语言文件打开不成功 >>

C语言文件打开不成功

c语言文件打开需要完整的路径名,文件打开失败,请检查路径是否正常; 关键是所指定的文件实际存在,而且文件名包括扩展名及路径都与所指定的都一致. fp=fopen("records.txt","r"); 要求文件records.txt在的C工程文件夹中.

打开失败是因为:该打开的文件名不存在或者所在目录路径输入错误.创建成功是因为:磁盘空间足够,创建文件的目录存在,文件名在该目录下未重名.

if(!(fp1=fopen(a,"rb")));这一句,你最后有个分号!!于是你的判断就变成了:if(!(fp1=fopen(a,"rb")))//若打开文件成功,执行空语句(一个分号) ;后面的语句: { printf("cannot open the first file!"); exit(1); }就成了必须会执行的顺序语句了.后面的错误都一样……把if判断那一句后面的分号去掉程序就正常了.

返回到调用函数!当函数F调用了这个打开文件的函数,在遇到return时就返回到函数F.如果是在主函数里遇到了return,那程序就结束啦.

加头文件#include 把printf("fail to open");换成perror(“fail to open”);看下打印

应该是你代码上的问题.文件成功打开以后,没有执行close,那么在当前程序没退出的情况下,文件是被独占的,所以无法直接在windows下修改.检查一下代码,单步跟踪看看.还有就是:按你的要求,你可以先用access函数判断文件是否存在,如果存在,用"r"打开,如果不存在用"w”打开.

就是读文件写文件啊.比如程序里一些数据的保存和读取.

不用,打开失败,就无法获得文件句柄,所以也无需关闭了

一个进程能够打开的文件不是无限的,有一个固定的数.所以你的打开文件200多后就失败了,或许你的文件过大,

你没有fopen 文件,没有 fprintf,fwrite 写文件, 没有 fscanf,fread 读文件.FILE *fp;例如 fp=fopen("abc.txt","w"); // 打开ASCII 文件 abc.txt, 用来写.例如fp=fopen("abc.txt","bw"); // 打开2进制 文件 abc.txt, 用来写.例如fp=fopen("

网站首页 | 网站地图
All rights reserved Powered by www.gpfd.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com