大家帮看下这个C语言程序里面if((fp=fopen("file.txt","w"))==NULL)是什么意思??

#include "stdio.h"
#include "stdlib.h"
void main()
{
void WriteD();
WriteD();
}
void WriteD()
{
FILE *fp;
char ch;

if((fp=fopen("file.txt","w"))==NULL)
{
printf("can't open file\n");
exit(1);
}
printf("please input a string:");
do
{
ch=getchar();
fputc(ch,fp);
}while(ch!='\n');
fclose(fp);
}
我想你们都没理解我说的是什么,我说的是在什么情况下(fp=fopen("file.txt","w"))==NULL会成立,从而执行if里面的语句。

先执行fp=fopen("file.txt","w"),以只写的方式建立并打开文本文件,已存在的文件将被覆盖。
然后返回文件指针给fp。
再执行fp==NULL,如果前一步打开文件失败,就会返回NULL,则fp==NULL为真,执行if中的语句。否则跳出if 语句,执行后面的语句。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-05-12
"file.txt"是文件名;"w"是只写的意思;
if((fp=fopen("file.txt","w"))==NULL)这个语句的意思如果这个文件的内容为空,就是什么都没有的话,则执行下面的输出语句!追问

不是这样的。如果为空的话将自动创建一个文本。而不是执行if语句。

追答

是啊,可如果不先执行if语句的话你怎么判断是否为空呢。。

追问

我不是说if后面小括号里面的,我是说如何执行花括号里面的程序。

追答

我想你可能理解错了,不是为什么会打开失败,if语句里面是条件,就是这么规定的。
根据题意可以知道,打开失败是必然的,要不就无法执行下面的do..while 语句了。
所以当((fp=fopen("file.txt","w"))==NULL)这个条件成立时,打开失败,if语句结束,开始执行下面的do..while 语句,获取字符后文件关闭,程序结束。

本回答被提问者和网友采纳
第2个回答  2011-05-12
fp=fopen("file.txt","w"))==NULL
打开要写的文件,不成功就是null,执行if语句。成功就跳出if语句,执行下面的
相似回答