#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里面的语句。
不是这样的。如果为空的话将自动创建一个文本。而不是执行if语句。
追答是啊,可如果不先执行if语句的话你怎么判断是否为空呢。。
追问我不是说if后面小括号里面的,我是说如何执行花括号里面的程序。
追答我想你可能理解错了,不是为什么会打开失败,if语句里面是条件,就是这么规定的。
根据题意可以知道,打开失败是必然的,要不就无法执行下面的do..while 语句了。
所以当((fp=fopen("file.txt","w"))==NULL)这个条件成立时,打开失败,if语句结束,开始执行下面的do..while 语句,获取字符后文件关闭,程序结束。