当前位置:C++技术网 > 资讯 > C语言输入字符时注意回车

C语言输入字符时注意回车

更新时间:2015-11-03 10:14:53浏览次数:1+次

  今天一大早就上慕课网社区回答别人的问题,其中有一个问题是这样的:

  编制一个菜单程序Menu().利用switch语句完成菜单的选择,当输入'A'时,调用程序A(),当输入'B'时,调用程序B(),当输入'C'时调用程序C(),当输入其他字符时直接返回-1,主程序中利用-1结束程序,退出循环。

  于是就动起手来编程

  

#include <stdio.h>
#include <stdlib.h>

int Menu();
void A();
void B();
void C();

int main()
{
	int t = Menu();
	while(t != -1)
	{
		t = Menu();
	}
	system("pause");
	return 0;
}

int Menu()
{
	char str;
	scanf("%c", &str);
	getchar();//截获回车和空格字符
	switch(str)
	{
	case 'A':
		A();
		break;
	case 'B':
		B();
		break;
	case 'C':
		C();
		break;
	default:
		return -1;
		break;
	}
	return 0;
}

void A()
{
}

void B()
{
}

void C()
{
}

  程序编完后发现每次输入都马上结束了,觉得很奇怪,调试了好久才发现,原来是输入问题,回车也算是字符啊,真的是不编不知道,一编吓一跳了,在之前回答别人代码问题的时候也遇到过这样的问题,但当时没有去探究为什么会这样,只是添加了getchar函数就成功了,这次让我逮到了,哈哈哈。