Po prostu tworzysz sobie flagę, która definiuje, czy dany przycisk został wciśnięty. Jeśli wskazuje, że jest, to kolejny raz nie wykona się to, co jest przypisane do danego klawisza:
bool wcisniety = false;
while(true)
{
if(wcisniety_klawisz() && !wcisniety)
{
std::cout << "WCISNIETY!" << std::endl;
wcisniety = true;
}
if(!wcisniety_przycisk())
{
wcisniety = false;
}
}