Witam,
Chciałbym zatrzymać taką pętlę w dowolnym momencie -> wtedy gdy użytkownik wciśnie jakiś klawisz. Wiem, że trzeba pobrać znak od użytkownika, lecz chciałbym zrobić tak, że wtedy gdy nic nie wciska na klawiaturze to "lecą sobie liczby" na ekranie.
Przedstawiam kod:
#include <iostream>
#include <conio.h>
#include <windows.h>
int main()
{
int i{};
int gc{};
while(true)
{
std::cout << i <<"\n";
Sleep(1000/3);
i++;
}
}
Jak można zauważyć, dodałem bibliotekę <conio.h> do użycia getch() (ogólnie to można chyba to zrobić też zwykłym getchar()). Wcześniej próbowałem coś wykombinować w taki sposób:
#include <iostream>
#include <conio.h>
#include <windows.h>
int main()
{
int i{};
int dc{};
bool pierwszy_raz = true;
while(dc = getch())
{
if(pierwszy_raz == true)
{
std::cin.ignore();
pierwszy_raz = false;
}
if(dc == 27)break;
std::cout << i <<"\n";
Sleep(1000/3);
i++;
}
std::cout << "\n\nPętla zakonczona!";
}
W powyższym kodzie moja logika była taka: w warunku pętli pobieraj znak, ale jeśli jest to pierwszy to go zignoruj, potem niech lecą te liczby, i jeśli w dowolnym momencie user klinie przycisk (w tym przypadku jest to "Esc") to wyjdź z pętli.
Myślałem nad kilkoma innymi rozwiązaniami jednakże takie taktyki zawiodły, co więc mógłbym zrobić?
Z góry dziękuję!