getchar和scanf在c

时间:2015-12-10 14:57:57

标签: c scanf getchar

我在以下代码中遇到问题:

    int main()
{
    char choice;
    char secondChoice;
    int howMany = 0;

    printf("WHAT WOULD YOU LIKE TO ORDER?\n F- fruitShake\n M- milkShake\n");
    choice = getchar();
    printf("WHAT SIZE?\n B-big\nS-small\n");
    secondChoice = getchar();
    printf("how many would you like?\n (choose a number between 1-9)\n");
    scanf("%d", &howMany);


    system("pause");
    return 0;
}

在输入第一个char(您想要订购的内容)后,哪个正常工作,之后printf出现并且效果不佳。 (就像它跳过secondChoice = getchar();

2 个答案:

答案 0 :(得分:2)

我的猜测是它没有跳过,但可能会从您之前的输入中读取换行符(如果您使用Enter键终止输入)。

答案 1 :(得分:0)

请运行下面添加的修改后的代码,并观察该程序是否正常运行并添加了2个语句。

public

使用 fflush(stdin)时请注意,因为我提到的某些来源建议不要使用它。您可以尝试删除fflush(stdin)语句并注意输出中的差异

  fflush(stdout);
  fflush(stdin);