if((fp=fopen("d:\\string.txt","w"))=NULL)
是常见的粗心问题,把"=="写成"="了,是判断(xxxx==NULL),=NULL就是赋值了,改下就好了:
if((fp=fopen("d:\\string.txt","w"))==NULL)
编译没有错误只表示没有最基础的语法错误,但程序的逻辑错误是检查不出来的,两处有问题,一个是=NULL应该为==NULL,为啥就不解释了吧,第二处是ch=getchar(); fputc(ch,fp);这两行需要换下顺序。