当前位置:网志问答 > 电脑 > 不知道哪里错了?
已有回答

不知道哪里错了?

#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);}网志问答在·河南浏览130次收到腾讯网的热心用户异_393关于查理九世不知道哪里错了?的提问,关于这些疑难问题,进行了深入的分析。得到了网志问答众多网友的支持,得到了如下解决方案,摘录了部分优质回答,如对此有任何好的意见,欢迎大家进行探讨共同解决!

详细问题描述及疑问:期待您的答案,希望你能感受到,我最真诚的谢意 !

本页链接:http://www.oxrm.com/question/1685348685215561

AD728-90
满意答案

第1个优秀答案:

程序没有任何语法错,可以编译运行,但要得到正确结果,问题是你错在运算符优先级上了在while(ch=fgetc(fp)!=EOF)中,因为逻辑运算符!=的优先级高于赋值运算符=,所以会先计算fgetc(fp)!=复七零EOF,相当于ch=(f来自getc(fp)!=EOF),所以ch的结果在正常循环时永远为1正确的应该是while((ch=fgetc(fp))!=EOF)改好后就可以了


希望以上的回答,能够帮助你。更多关于不知道哪里错了?的知识及相关经验请访问经验知识https://www.5058.cn/,能够帮助你解决更多的问题,学习更多的经验。
AD160-600