getchar() putchar()
getchar()获取从键盘输入的单个字符 putchar()将单个字符发送至屏幕
虽然getchar()获取单个字符,但除非按下Enter 键 否则控制不会返回程序
getchar() 函数命令C程序将输入放入缓冲区(buffer),按下Enter键后 缓冲区的内容以每次一个字符释放
所以 1.没有按下Enter键就可以按下Backspace 键修正已键入的错误字符
2.如果不处理按下的Enter键 , Enter键将留在缓冲区
例如:
first=getchar();
last=getchar();
如果要键入GT 则G应该存入变量first中 T应该存入last中 然而并非如此
第一个getchar()在用户按下Enter之前不会结束 按下 G后 ,G 留在缓冲区 只有按下Enter ,G 才会离开缓冲区进入程序 -- 但此时Enter 键却留在了缓冲区 所以第二个getchar()会将Enter 键(\n)发送给last 需要额外的getchar()才能继续读取T
修复方案:
first=getchar();
x=getchar();//x:储存键入过程中的换行符 不需要处理变量x
last=getchar();
x=getchar();
甚至不用将换行符储存在变量中
first=getchar();
getchar();//getchar()单独占一行 获取字符后什么都不做 即丢弃换行符
last=getchar();
getchar();
也可以输入两个大写字母后再按下Enter键
first=getchar();//G储存在变量first中
last=getchar();//T储存在变量last中
getchar();
getch() putch()
getch()获取无缓区的单个字符 无需按Enter 按下键的同时 立即获取相应内容
first=getch();
last=getch();
getchar()不会在屏幕上显示键入内容 必须与putch()成对使用
first=getch();
putch(first);
last=getch();
putch(last);
getchar() getch() 对比:
1,getch()比getchar()快 getch()不需要Enter键的按下就能直接获取键入的内容
2. getchar()没有按下Enter键就可以按下Backspace 键修正已键入的错误字符,而getch()无缓冲区 自然不能使用
版权声明:本文为博主原创文章,未经博主允许不得转载。