我写了以下程序:
int main(){
char str[500],c;
FILE *f1=fopen("input.txt","r");
FILE *f2=fopen("output.txt","w");
while(c=fgetc(f1)!=EOF)
fputc(toupper(c),f2);
fclose(f1);
}
我没有得到想要的结果。我使用 do while 循环重写了代码。
int main(){
char str[500];
FILE *f1=fopen("input.txt","r");
FILE *f2=fopen("output.txt","w");
char c;
do
{
fputc(toupper(c),f2);
c=fgetc(f1);
}while(c!=EOF);
}
我发现第一个代码失败的原因是因为在 while 循环
while(c=fgetc(f1)!=EOF)
中,我们不能保证!=
首先评估的左侧部分,因此结果不正确。这是正确的解释吗?