[C++] Przerwanie programu w dowolnym momencie
Ostatnio zmodyfikowano 2013-05-30 09:20
Rafals Temat założony przez niniejszego użytkownika |
[C++] Przerwanie programu w dowolnym momencie » 2013-05-30 00:44:01 Witam. Mam taki oto program: #include<iostream> int main() { for( int i = 0; i < 1; ) { std::cout << "."; } } Chciałbym go zakończyć w dowolnym momencie. Próbowałem w gogle znaleźć, ale nie przychodzi mi do głowy jakie pytanie postawić, aby uzyskać odpowiedź. Znalazłem, przepraszam za zaśmiecanie. Szukałem wcześniej przez około 30 min. #include <conio.h>
int main() { for(;; ) { std::cout << "."; if( kbhit() ) if( getch() == 'q' ) break; } return 0; } Jak stwierdzicie, że do usunięcia to usuwajcie ;p Jedno pytanie. "cin" nie jest w stanie w żaden sposób wyłapać, że escape zostało wciśnięte? |
|
f651144 |
» 2013-05-30 09:07:49 break; służy tylko do przerwania pętli. Jeśli naprawdę chcesz mieć możliwość zakończenia programu w dowolnym momencie np. wewnątrz jakiejś funkcji (innej niż main), to możesz użyć tej funkcji z biblioteki cstdlib (stdlib.h): void exit (int status); |
|
usmiech |
» 2013-05-30 09:20:12 Nie wiem do czego Ci to potrzebne, ale sprobuj tego.. #include <iostream> #include <string> #include <conio.h> using namespace std;
const int ESCAPE = 27; const int RETURN = 13;
bool get( string & s );
int main() { string str; get( str ); cout << str << endl; cout << "\nnacisnij enter, zeby przerwac..."; cin.get(); return 0; }
bool get( string & s ) { char c; s = ""; while( true ) { c = _getch(); if( c == ESCAPE ) { s = "(input aborted)"; cout << endl; return false; } if( c == RETURN ) { cout << endl; return true; } cout.put( c ) << flush; s += c; } }
|
|
« 1 » |