Трудно сказать по вашему вопросу, но похоже, что вы пытаетесь подсказать пользователю после каждой итерации цикла, хотят ли они продолжить. Я предполагаю, что бесконечный цикл for
находится в конце вашего основного цикла обработки.
Вам не нужен бесконечный цикл: _getch()
все равно остановит выполнение, пока не будет нажата клавиша. По правде говоря, тот факт, что вы поместили свое условие в цикл for
, является причиной того, что break
ведет себя не так, как вы хотите - вы break
выходите из бесконечного цикла, но не ваш основной цикл обработки.
Пример:
while(1)
{
// Do some processing
for (;;)
{
char temp;
temp = _getch();
if (temp == 'q')
break; // This will break out of the for and continue the while
}
}
против
while(1)
{
// Do some processing
if ('q' == _getch())
break; // This will break out of the while
}
Вы также заметите, что, поскольку _getch () возвращает char
, вы можете просто проверить код возврата функции (если только вам не нужно сохранить входные данные для последующего использования).