【问题标题】:Second scanf wont run, program just terminates. C [duplicate]第二个 scanf 不会运行,程序只是终止。 C [重复]
【发布时间】:2015-06-24 06:11:58
【问题描述】:

该程序仅使用 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);
}

【问题讨论】:

  • 使用scanf(" %c",&amp;additionalbuilding);
  • 哈哈谢谢你的作品

标签: c scanf


【解决方案1】:

这是因为整数输入中的前一个 \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);

【讨论】:

    猜你喜欢
    • 2012-12-31
    • 1970-01-01
    • 2012-11-02
    • 2021-12-22
    • 2021-12-18
    相关资源
    最近更新 更多