在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();
}
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页