Strumień wejścia w dowolnej chwili
Ostatnio zmodyfikowano 2012-07-02 19:33
ksry Temat założony przez niniejszego użytkownika |
Strumień wejścia w dowolnej chwili » 2012-07-01 00:32:27 Sprawa wygląda tak, mam while w którym chciałbym sprawdzać czy nie zostało coś umieszczone w strumieniu wejścia. Gdy używam zwykłego cin'a to program czeka aż wpiszę coś.
tak miałoby to wyglądać mniej więcej:
while( true ) { cin.sync(); if( sprawdz_co_jest_w_buforze == "stop" ) break; zrobcos(); } return 0; |
|
DejaVu |
» 2012-07-01 00:34:04 |
|
kampar |
» 2012-07-01 10:47:17 Można albo samemu napisać obsługę wejścia (trzeba poszukać jakiejś funkcji, która zwraca wprowadzony znak z klawiatury i jednocześnie nie blokuje programu), albo utworzyć nowy wątek i w jednym dać std::cin, a w drugim wykonywać jakieś operacje |
|
ksry Temat założony przez niniejszego użytkownika |
» 2012-07-01 10:52:14 jak strumieniem wyjścia mam sprawdzić czy ktoś przypadkiem w konsoli nie napisał stop ? w lekcji o strumieniu wejściowym nie ma nic innego od cin i getline, ale getline też kończy działanie programu |
|
jsc |
» 2012-07-01 11:23:56 utworzyć nowy wątek i w jednym dać std::cin |
Prościej byłoby przechwytywanie strumienia oprzeć na obsłudze pętli głównej WinAPI. |
|
pekfos |
» 2012-07-01 11:48:42 Napisz własne wczytywanie oparte o getch() i kbhit(). |
|
DejaVu |
» 2012-07-01 17:58:57 |
|
szymekpl |
Odp: » 2012-07-02 19:33:57 A funkcja GetAsyncKeyState() z WinAPI? Powinna się sprawdzić w tej sytuacji :) |
|
« 1 » |