Code Bye

为什么不能直接将getc(stdin) !=EOF做比较

为什么不能直接将getc(stdin) !=EOF做比较?
而是要写成
int ch;
ch=getc(stdin) !=EOF;
getc()的返回值不就是整形吗?
解决方案

5

怎么不能?谁说不能了?

5

能,但是输出不仅仅是为了检测能否EOF 的吧
假如,不是EOF总得做点什么吧
那么,用一个变量存储getc的返回值,不就很自然了么?

5

输出–>输入

10

它喜欢写成那样。
不代表getc(stdin) !=EOF就不行

40

题主这种也可以
另外ch=getc(stdin) !=EOF; ch得到的是比较后的布尔值
而 (ch=getc(stdin)) !=EOF 是让ch等于函数返回值,再与EOF比较

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明为什么不能直接将getc(stdin) !=EOF做比较