尝试在"C"编程中获取 1 个字符输入,程序按字符数跳过步骤

  • 本文关键字:字符 程序 编程 获取 字符输入 c
  • 更新时间 :
  • 英文 :


这是代码:

for(i = 1; i <= 4; i++)
{
    scanf("%c", &input);
    choice = ChooseGame(input);
}
// ChooseGame function (Definition)
int ChooseGame(char input)
{
    switch (input) {
        case '1':   choice = 1;
        printf("Game 1!");
        break;
    default:
        choice = 0;
        printf("Wrong input, please try again!n");
    }
    return choice;
}

我正在尝试获取 1 个字符的输入,但如果例如用户输入"234",它会跳过 3 个步骤而不是 1 个步骤。

我该如何解决它?谢谢!

背后的原因是n上一个scanf留下的(按 Enter 时)。
试试这个

scanf(" %c",&input);
   //  ^space  

格式说明符前面的空格%c吃掉所有换行符,将帮助您解决此问题。

问题是由于输入键或某些空格字符导致的尾随换行符执行此操作:

for(i=1; i<=4; i++)
{
    scanf("%c",&input);
    while(getchar() != 'n');
    choice = ChooseGame(input);
}

示例输出

或者你可以在scanf%c之前放一个空格:

for(i=1; i<=4; i++)
{
    scanf(" %c",&input);
    choice = ChooseGame(input);
}

相关内容

最新更新