#include<stdio.h>
int main(void)
{
char temp[5];
fgets(temp, 5, stdin);
printf("%s", temp);
return 0;
}
vs2017 win10系统
情况1.输入a按下回车,在temp里是'a','\n'和'\0'
情况2.输入a和CTRL+Z,按两下回车,在temp里会有'a','\x1a','\n'和'\0'。
问题1. ctrl+Z不是文件结束符么,为什么在情况2中还会读取‘\n'?
问题2. 为什么在情况2中需要两次回车?
问题3. 我看的一篇文章(http://blog.csdn.net/ccshijtgc/article/details/24033991)中说阻塞式和非阻塞式的区别,我发现ctrl+D和Z都能用,temp中数据也不一样,不同的是在情况2中如果按下的是D,那么按一次回车就可以结束输入,只是输出的时候会有个方框,D和Z为什么会有不一样的效果,并且都是按下回车才结束输入那么应该都是阻塞式?