不知道哪里错了?
hao123网址之家异_393用户在·河南浏览130次提交了关于“查理九世不知道哪里错了?”的提问,欢迎大家帮忙网友并涌跃发表自己的观点。#include<stdio.h>#include<stdlib.h>voidmain(intargc,char*argv[]){charch;FILE*fp;if(argc!=2){printf("Argumentserror!\n");exit(-1);}if((fp=fopen(argv[1],"r"))==NULL){printf("Can'topen%sfile!\n",argv[1]);exit(-1);}while(ch=fgetc(fp)!=EOF)putchar(ch);fclose(fp);}程序没有任何语法错,可以编译运行,但要得到正确结果,问题是你错在运算符优先级上了在while(ch=fgetc(fp)!=EOF)中,因为逻辑运算符!=的优先级高于赋值运算符=,所以会先计算fgetc(fp)!=复七零EOF,相当于ch=(f来自getc(fp)!=EOF),所以ch的结果在正常循环时永远为1正确的应该是while((ch=fgetc(fp))!=EOF)改好后就可以了