getchar() 函数不带任何参数,它从输出队列中返回下一个字符
ch=getchar();
putchar()函数打印它的参数,例如,下面的语句把之前赋给ch的值作为字符打印出来
putchar(ch);
两种缓冲方式
完全缓冲:当缓冲区被填满时才刷新缓冲区
行缓冲:在出现换行符时刷新缓冲区
文件的结尾
计算机操作系统会在文件末尾放一个特殊的字符标记文件结尾。无论操作系统使用何种方法检测文件结尾,用getchar()读取文件检测到文件结尾时将返回一个特殊的值,即EOF,scanf()函数检测到文件结尾时也返回EOF
EOF代表值可能不同,程序中使用EOF,是把getchar()的返回值和EOF作比较,如果两个值不相同,就是没有达到文件的末尾
while((ch=getchar())!=EOF)
使用程序进行输入的时候,设法输入EOF时,看具体系统的要求,一般是ctrl+z
getchar()读取每个字符,包括空格、制表符和换行符
解决换行符的问题
while(getchar()!=‘y’)
{
;
while(getchar()!=’\n’);
continue;//跳过剩余的输入行
}
对输入进行验证
while(scanf("%ld",&input)!=1)
{
while((ch=getchar())!=’\n’)
putchar(ch);
}