C语言中getchar的用法:
当输入终端在默认的输入模式(cooked)下时getchar是以行为单位进与略万顾行存取,eof(unix/linux下为组合键ctrl+d)有两种作用,一个是换行符,一个是带孝结束符。当缓冲区有其它字符时,它只是一个换行符,乡当前面没有字符是它就是一个地地道道的文件结束符。
运行档旦代码:
#include<stdio.h>
intmain()
{
intc;
while(c=getchar()!=EOF)
{
prin360问答tf("%d\n",c);
}
printf("%d\n",c);
printf("EOF=%d\n",EOF);
return0;
}
结果如下:
g往想么林控构取etchar()!=EOF的值为1;
EOF=-1;
扩英片展资料:
getchar这个函数执行过程
(1)当调用getchar时,函数打开输入缓冲,并等待用户的动兰更载医热输入。
(2)用户进行输入,并结束输入(ctrl+d,回车),此时的ctrl+d只是一个结束这一次输入的露倒管现动作,并不是***.getchar从缓冲区里取一个字符,并返回。
(3)缓冲区里字符队列头后移一位,等待再取。
(4)杨文打回车结束和ctrl+d结束不相同,回车也做为一个字符被存到缓冲区里,而ctrl+d并没有做为一个字符存储。
(5)缓冲队列没有字符,裂收蒸血欢五负序此时行行扰又按下了ctrl+d此时就是结束输入动作,也就是eof。
标签:C语言,getchar