Я создаю базовое консольное приложение на C / C ++.
В следующем примере я несколько раз записываю какой-то символ в консоль с задержкой 50 мс и хочу, чтобы он выходил из программы при нажатии клавиши.
#include "pch.h"
#include <iostream>
#include <windows.h>
#include <stdio.h>
#include <conio.h>
int PauseRet(int iDuree) {
unsigned int uiTemps = GetTickCount();
int iVal = 0;
do {
if (_kbhit()) {
iVal = _getch();
}
} while ((GetTickCount() - uiTemps) < (unsigned int)iDuree);
return iVal;
}
int main()
{
char c = 0;
int iTempo = 50;
while (true) {
putchar('a');
c = PauseRet(iTempo);
if (c) {
return 0;
}
}
}
Моя проблема в том, что в моем проекте он переходит в состояние if(c){...
только когда я ставлю точку останова здесь:
if (_kbhit()) {
<BREAKPOINT> iVal = _getch();
}
Я использую Visual Studio 2017.
Я пробовал этот код на другом ПК в новом проекте, и у меня не было никаких проблем
Мне кажется, это как-то связано с настройками моего проекта.