C语言文件操作 出现了有关问题,求大师指点

C语言文件操作 出现了问题,求大师指点
#include<stdio.h>
void main()
{
FILE *fp;
int i;
fp=fopen("datafile1.dat","rb");
if(fp=NULL)
puts("File open error!");

i=fclose(fp);
if(i==0)
printf("OK!");
else
puts("File close error!");
}
c语言

------解决方案--------------------
i=fclose(fp);
if(i==0)
printf("OK!");
else
puts("File close error!");


一般关闭文件只写fclose(fp);不做检查
如果非要问为什么  我也不太清楚
路过
------解决方案--------------------
if(fp=NULL)  这里赋值操作了 不是判断了

//改这个
if(fp == NULL)
{
puts("File open error!");
}


引用:
#include<stdio.h>
void main()
{
FILE *fp;
int i;
fp=fopen("datafile1.dat","rb");
if(fp=NULL)
puts("File open error!");

i=fclose(fp);
if(i==0)
printf("OK!");
else
puts("File close error!");
}