Just nu i M3-nätverket
Jump to content

Jag vill kunna avbryta en whilesats mitt i en exekviering


vlise

Recommended Posts

Hej

Har en liten fundering om huruvida det går att avbryta en while loop genom att den för varje varv kollar om ett fall sant eller ej.

 

Detta vill jag göra. Jag vill att while loppen skall hålla på tills att jag trycker på en speciell tangent, ex s. Men jag vill försöka undvika att använda cin i loopen, eftersom då väntar loopen på ett svar från användaren efter varje loop. opch detta vill jag ju inte. Finns den möjligheten?

 

while(i < value)

{

do something

 

if(om jag tryckt på en viss tangent skall loopen avbrytas)

break;

i++;

}

 

Jag vill alltså kunna avbryta satsen innan i = value. Det kanske inte går i en console app?

 

Link to comment
Share on other sites

Minns inte riktigt hur cin fungerar, men jag har för mig att en operation av typen (cin >> variabel) returnerar true/false beroende på om det överfördes något från buffern. Isåfall kan du testa med nedanstående:

 

bool isInterrupted=false;
while(i < value && !isInterrupted)
{
// do something
 string dummy;
 isInterrupted = (cin >> dummy);
 i++;
}

 

Link to comment
Share on other sites

Tack för hjälpen men det funkade inget bra =(. Loopen stannar forfarande och väntar på att få något från användaren.

 

Link to comment
Share on other sites

Skulle det vara en någon peak att du skrev dummy som variabel namn?=)

Aja jag löste iaf hur man skulle göra.

 

while(statement)
{
´ //do something
  if(_kbhit())
   {
        if(tolower(_getch()) == 's') 
            break;
    }
}

 

Link to comment
Share on other sites

Skulle det vara en någon peak att du skrev dummy som variabel namn

Hehe, nädå, jag brukar använda det namnet ibland för en variabel som inte tjänar något egentligt syfte i koden.

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...