我有一些简单的代码,但遇到了以下问题 - 当我第二次调用函数 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?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27631071/