C语言 对EOF基本理解-1例题和解析

先看看这个核心

while( (c=getchar() ) != EOF)

考试里面出了一道有这个代码的题,让我很烦恼,不是刚学完循环,这样那样循环继续,不符合出去,怎么还有EOF(ctrl+z就是他,有个大写Z),很着急甚至怀疑自己,不是这样的.......

        (慢慢来。)我们先看看课本《c语言程序设计》里面的两道题。

第一道题

验证表达式getchar()!=EOF的值是1还是0?(写代码尝试)

(提示 让c等于这个表达式,不等运算符!=的优先级高于赋值运算符=)

(看清楚是表达式)

#include<stdio.h>
int main()
{
	int c;
	while( c = getchar() != EOF )
	printf("%d",c);

	printf("%d",c);
	return 0;
}

试着输入:

1 abc 回车

2 abc ctrl+z abc 回车

3 ctrl+z 回车

(注意:上面没有空格)

 理解

1abc回车,1111,前三个1和最后一个1不一样,想一想。

2abc ctrl+z 回车, 遇到 ctrl+z(图片里面那个符号和大写Z),遇到ctrl+z 运行结束,后面的就没有打印。

3 ctrl+z 回车,EOF不等于EOF不符合条件,为假,循环结束,打印c,c为0

第二道题

编写一个打印EOF值的程序?

(woc,这是什么意思,printf("EOF",芜湖??)

#include<stdio.h>
int main()
{

	printf("%d",EOF);
	return 0;
}

 芜湖,你对EOF有初步的理解,下一篇进阶一下。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值