在win控制台按下ctrl+z组合键时,输入的内容

按下ctrl+z键时,getchar函数读入的值

当在控制台运行C程序时,若按下ctrl+z键,getchar函数读入的内容,因按下ctrl+z键时输入的^Z位置有关,具体如下:

  • 单独一行开头按下ctrl+Z
    若是在单独的一行开头就按下ctrl+z,然后回车输入(即该行只显示^Z),则读到的值就是EOF
  • 该行已有内容,再按下ctrl+z
    若是在该行已有输入字符,再按下ctrl+z,同时^Z后面还可以输入其他字符,比如: abc^Zefg,然后再回车,将内容输入则通过getchar()读到的字符内容是abc^Z,其中^Z是一个无法显示的特殊字符,而不再是EOF,同时^Z后面的所有内容,包括最后按下回车输入的不可见的换行符都将被清空,下次getchar读入的字符将会是键盘重新输入的字符。

测试效果如下:
在这里插入图片描述
测试程序代码:

/*
	控制台按在ctrl+z:
	1.若是在单独的一行开头按下ctrl+z的(即该行只有^Z),则读到的值就是EOF
	2.若是在该行已有输入字符,再按下ctrl+z,同时^Z后面还可以输入其他字符,比如: abc^Zefg,然后再回车,将内容输入
	  则通过getchar()读到的字符内容是abc^Z,其中^Z是一个无法显示的特殊字符,而不再是EOF,同时^Z后面的所有内容,包括最后按下回车输入的
	  不可见的换行符都将被清空,下次getchar读入的字符将会是键盘重新输入的字符。
*/
void test_EOF(){
	int c,next;

	while((c=getchar()) != EOF){
		printf("c:%c\n", c);
		next = getchar();
		printf("next:%c\n", next);
		if(next == EOF){
			printf("next get EOF\n");
		}
	}
	printf("\n=====>end:%c\n", c);
	return;
}


void main()
{
	test_EOF();
}
  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值