#include<stdio.h>
int main(void)
{
char temp[5];
fgets(temp, 5, stdin);
printf("%s", temp);
return 0;
}
但我windows也能用ctrl+D啊,fgets读取换行符这个我知道,我是不懂为什么在ctrl+Z之后的换行符也能被读取到,不是已经结束了么,而且为什么在情况2下要两次回车才能结束输入呢
fgets注意的一点是:遇到换行符返回,中间遇到空格不会返回,因此可以理解为行输入。
ctrl+z和ctrl+d是不同系统下输入文件结束符(EOF)的快捷键。ctrl+z是windows的,而ctrl+d是Linux下的。
fgets遇到EOF或换行才会退出,但是ctrl+d不是windows下的输入EOF。
在Linux下测试结果是输入a然后输入ctrl+d,最终是输出a。
输入a然后输入ctrl+z程序停止运行,并不输出a。
但从你的这几条语句能看出temp中有'\x1a','\n'和'\0'吗?
本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。