我有一段简单的代码,遇到了以下问题——当我第二次调用playerGuess()函数时,它不允许我输入任何东西。看起来程序是自动按回车键的。为什么?你能帮忙吗?

 int main(void)
 {


 void playerGuess();
 void playerGuess();
 }

 void playerGuess()
{
  char playerInput[2];
  int num, row, colum;
  printf("Enter a grid reference (a1 - j0): ");
  fgets(playerInput, 3, stdin);
  printf("%s", playerinput);
}

最佳答案

playerInput太短。你需要空间来输入,加上一个换行符,再加上nul。第一个fgets()在行尾之前停止,因为它的缓冲区空间不足(尽管您仍然溢出了缓冲区,因为您指定的大小大于实际数组)。。。然后第二个fgets()读取行的其余部分(它有换行符)。

关于c - 如何摆脱与C中的第二按Enter?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27631071/

10-12 15:02