文号
t23353
阅读
17874
回复
11
收藏
4
C程序 这个文件指针怎么这么难获得啊?
2010/02/23
IP:江苏
#include<stdio.h>
#include<stdlib.h>

void main()
{
  FILE *fp;
  char ch;

  if (fp=fopen("fa.dat","r")==NULL)
  {printf("Can't open this file!\n");exit(0);}

  ch=getchar();
  while(ch!='@')
  {fputc(ch,fp);ch=getchar();}

  fclose(fp);
}


这个代码是用来把字符输入文件的。编译没有问题。
可是运行的时候老是不能获得文件指针,真要命。
carneades作者
16年11个月前IP:未同步
194769
3楼
谢谢楼上提醒。
我的代码是从课本上抄的,然后自己改动了一下。不过if那行没有改动。
赋值运算符比关系运算符要优先,操作应该是先建立文件,后返回指针,最后判断该指针是否为零。
引用
评论
carneades作者
16年11个月前IP:未同步
194979
5楼
谢谢4楼!
今天傍晚我把昨天代码中的“r”改成“w”,编译时没有出错。但是运行时,即便输入@也没有停止getchar。很奇怪。

const char *path = "D:\\\\Users\\\\MiniLight\\\\Desktop\\\\New Text Document.txt";
这句话定义并初始化了一个char类型指针,为什么指向文件?为什么要Const?
我把4楼的代码复制到VC6上,编译的时候居然报错1 error(s), 0 warning(s)。
引用
评论
carneades作者
16年11个月前IP:未同步
195207
8楼
错误的箭头指向using那一行。
C:\\Documents and Settings\\Administrator\\桌面\\fp2.c(6) : error C2059: syntax error : ';'
引用
评论
笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的