Hej Er det på noget måde muligt at lave en uendelig whileløkke, der kan afbrydes med et tastatur input?
Har forsøgt med med noget som:
while(!getchar()) Blablabla;
samt: while(getchar()!='x') Blablabla;
Men alt hvad jeg har forsøgt, virker enten ikke, eller også venter den på et brugerinput ved hvert gennemløb. Meningen er at den skal lave gennemløb, og ignorere getchar(), hvis man ikke rører ved tastaturet.
#include <iostream> #include <conio.h> // til brug af !kbhit #include <windows.h> // til brug af GetAsyncKeyState
using namespace std;
void global_key(){ while(!GetAsyncKeyState(VK_F1) ){ cout << "Hello world - Global hotkey\n"; } } void program_key(){ while(!kbhit()){ cout << "Hello world - Lokal key\n"; } }
int main(){ global_key(); //Denne funktion, bliver ved, indtil der bliver trykket F1 (den virker globalt, selvom programmet ikke er i fokus) program_key(); //Denne funktion, bliver ved, indtil der bliver trykket F1 (den virker kun lokal, altså når programmet er i fokus) system("pause"); return 0; }
Hov, jeg burde lige gøre opmærksom på en lille fejl, kbhit() returnere selvfølgelig kun true/false, så derfor reagerer den ikke kun på F1, men på alle taster :)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.