此程序仅适用于1个printf scanf对。当我添加第二对并运行程序时,它允许我输入第一个变量。但跳过第二个并终止程序。怎么了?
#include <stdio.h>
//Version A-1.0
main
{
//Variables
int HQ;
char additionalbuilding;
//Prompt user to specify a HQ level
printf("Specify a HQ level. (1-20): ");
scanf("%d",&HQ);
printf("Would you like another building? (y/n): ");
scanf("%c",&additionalbuilding);
}
答案 0 :(得分:0)
这是因为整数输入中的前一个\ n保留在缓冲区中。在scanf之前使用getchar来摆脱它
printf("Specify a HQ level. (1-20): ");
scanf("%d",&HQ);
getchar();
printf("Would you like another building? (y/n): ");
scanf("%c",&additionalbuilding);