第二个getchar的作用

来源:百度知道 编辑:UC知道 时间:2024/06/10 03:17:41
第二个getchar有什么作用?
#include<stdio.h>
main()
{
char c;

do{
puts("*********自动饮料机*********\n");
puts(" 1.雀巢咖啡");
puts(" 2.农夫山泉");
puts(" 3.乐百氏");
puts(" 4.冰红茶");
puts(" 5.退出");

printf("请按(1~4)选择一种饮料:");
c=getchar();
getchar();
switch(c)
{
case'1':puts("\n 请喝一杯雀巢咖啡");break;
case'2':puts("\n 请喝一杯农夫山泉");break;
case'3':puts("\n 请喝一杯乐百氏");break;
case'4':puts("\n 请喝一杯冰红茶");break;
case'5':puts("\n 谢谢惠顾");break;
default:puts("\n 非法选择,请重新输入");break;
}

}

c=getchar();
getchar();

getchar()是的功能是从输入流中提取一个字符
第一个getchar()是提取你输入的第一个字符
第二个getchar()是提取你输入的第一个字符
如果你只输入一个字符,那第一个getchar()就把你输入的字符提取
第二个getchar()把回车符提取,因为你在输入字符后,按了回车键。

getchar(); 这个是用来去输入的数, 而 c=getchar(); 只是一个先赋值语句,最后还是要用 getchar(); 这个函数来去数的, 然后下面 才可以判断C的值是1,2,3,4 作出选择

getchar()是要回车的,知道这个你就明白了。

getchar()函数使用输入缓冲区,需要回车完成输入,回车也会在缓冲区
假设输入'1',按回车
第一个getchar()得到'1'
第二个getchar()得到'\n',就是回车键

把getchar()换成getch()函数,就不会有这种问题了。