C语言中关于文件操作的一个问题!谢谢

aten_xie 2007-10-31 01:52:21
#include <stdio.h>
main()
{
FILE *fp;
char str[11];
if((fp = fopen("1.c","r"))==NULL);
{
printf("can not open file 1.c!");
getch();
exit(1);
}
fgets(str,11,fp);
printf("%s",str);
fclose(fp);
}
以上是我的代码。
问题是:为什么我的文件打不开?就是fp的值为NULL。
我是在TURBOC2上编译的。
...全文
144 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
aten_xie 2007-11-13
  • 打赏
  • 举报
回复
前段时间忙,今天回来看看。
问题我发现了,其实就是在if语句后面多加了一个分号。
不好意思!
_石头_ 2007-11-01
  • 打赏
  • 举报
回复
1、核实你的路径。文件路径必须和代码编译后生成的 .exe文件的路径相同,否则就要定义绝对路径如:"c:\\tc\\1.c"
2、核实你的文件名及其后缀,用鼠标右键点击文件,查看属性看是不是1.c ,估计很有可能是1.c.txt(扩展名被隐藏了),这样的话改掉后缀名就行了。
aten_xie 2007-11-01
  • 打赏
  • 举报
回复
我用PERROR打印,出来没有什么错误。
显示ERROR 0
不知会不会是我文件1.c 里面内容的关系?
yyy6210 2007-10-31
  • 打赏
  • 举报
回复
应该是路径的问题
cceczjxy 2007-10-31
  • 打赏
  • 举报
回复
路径,
printf( "can not open file 1.c! ");
换成perror("can not open file 1.c!);
看看什么原因
l_W_T 2007-10-31
  • 打赏
  • 举报
回复
同上.
quentinliu 2007-10-31
  • 打赏
  • 举报
回复
看看你的1.c文件放在哪里了?放到编译程序的目录下,编译生成的exe目录下,或者你用绝对路径,比如 如果你放在c盘下,fopen要这样写

if((fp = fopen("c:\\1.c","r"))==NULL)

一般来说是这种问题。
forever4444 2007-10-31
  • 打赏
  • 举报
回复
肯定是路径问题。
yxwsbobo 2007-10-31
  • 打赏
  • 举报
回复
#include <stdio.h >
main()
{
FILE *fp;
char str[11];
if((fp = fopen( "1.c ", "r "))==NULL);
{
printf( "can not open file 1.c! ");
getch(); //getchar()
exit(1);
}
fgets(str,11,fp);
printf( "%s ",str);
fclose(fp);
}

1.c必须与你运行的文件在一个目录下
sure2003 2007-10-31
  • 打赏
  • 举报
回复
TURBO c 快捷方式 》 程序 》工作目录 》 你的文件所在地
如果是这样,可以省略路径
bfzhao2008 2007-10-31
  • 打赏
  • 举报
回复
估计文件不存在或路径有问题

70,037

社区成员

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

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