Если вы просто хотите подождать и попросить пользователя нажать , чтобы продолжить, введите , затем используйте fgets()
и короткий буфер. fgets()
будет блокироваться до получения ввода и будет считывать и включать '\n'
(генерируется нажатием Enter ) в заполняемый буфер.
Вы должны помнить о состоянии stdin
, прежде чем позвонить fgets()
(например, если при предыдущем чтении с scanf
и "%d"
оставлено '\n'
в stdin
непрочитанным, то будет казаться, что fgets()
был пропущен)
Ваша функция выше и будет переписана следующим образом, чтобы ждать, пока пользователь не нажмет Enter
void RestOfGame (int r, int c, int mG, int **cGen,int **nGen)
{
int i = 0, q = 0;
for (i = 2; i <= mG; i++) {
char buf[128]; /* short buffer for fgets */
printf("\n(press enter to continue)\n\n");
fgets (buf, sizeof buf, stdin); /* fgets for input */
printf("Generation %d:\n", i);
ExamineReplace(r, c, cGen, nGen);
NewToOld(r, c, cGen, nGen);
DrawGrid(r, c, cGen);
}
}
выше, buf
является коротким 128-символьным буфером, который будет обрабатывать Enter , а также 126 других нажатий пальца до Введите и продолжат нормально работать.