编写一个如下菜单程序,要求用户从键盘输入菜单编号,若输入的是“q”,则结束程序运行,否则输出菜单编号,可反复输入菜单编号而不退出程序。
#include<stdio.h>
int main()
{char x;
do
{printf("1---菜单功能1\n2---菜单功能2\n3---菜单功能3\nq---退出\n");
printf("请输入:");
scanf(" %c",&x);
switch (x)
{case '1':printf("1---菜单功能1\n\n");break;
case '2':printf("2---菜单功能2\n\n");break;
case '3':printf("3---菜单功能3\n\n");break;
case 'q':break;
default:printf("错误,请重试\n\n");break;
}
}while(x!='q');
return 0;
}
请问为什么scanf(" %c",&x);的%前面要加个空格?是为什么?(不加的话会多输出一遍菜单)