1.从缓冲区读走一个字符,相当于清除缓冲区
2.前面的scanf()在读取输入时会在缓冲区中留下一个字符’\n’(输入完s[i]的值后按回车键所致),所以如果不在此加一个
getchar()把这个回车符取走的话,gets()就不会等待从键盘键入字符,而是会直接取走这个“无用的”回车符,从而导致读取有误
3.getchar()是在输入缓冲区顺序读入一个字符(包括空格、回车和Tab)
getchar()使用不方便,解决方法:
(1)使用下面的语句清除回车:
while(getchar()!=’\n’);
(2)用getche()或getch()代替getchar(),其作用是从键盘读入一个字符(不用按回车),注意要包含头文件<conio.h>
#include<stdio.h>
main()
{
int i;
i=getchar();//相当于char i;scanf("%c",&i);
putchar(i);//相当于printf("%c",i); 需要i是字符才能输出不能是变量
print

本文详细介绍了C语言中getchar、putchar函数的使用,特别是getchar如何处理缓冲区中的'
'。同时讨论了getch()函数在不同平台上的行为,强调了getch()非标准C函数的事实,并提出了处理程序闪退的建议。
最低0.47元/天 解锁文章
666

被折叠的 条评论
为什么被折叠?



