• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Sprawdzanie czy nie został wciśnięty enter podczas wypisywania tekstu

Object Storage Arubacloud
0 głosów
455 wizyt
pytanie zadane 1 października 2017 w C i C++ przez randinpa Początkujący (450 p.)
edycja 1 października 2017 przez randinpa

Mam taki kod w c++:

void wypisywanie_tekstu(const int czas,const string tekst)
{
    int i=0;
    int enter = false;

    while(tekst[i] != '\0' )
    {
        cout<<tekst[i];
        if(enter == false)Sleep(czas);

        if(enter == false)
        {
            if(tekst[i] == '.' || tekst[i] == ',') Sleep(500);
        }
        i++;
    }
    cout<<endl;
}

I mam pytanie czy dało by się zrobić żeby w pętli bez jej przerwania było sprawdzanie czy nie został wciśnięty klawisz enter a jeśli się tak stanie to niech nie przechodzi mi do następnej linii tylko niech zmieni mi wartość zmiennej enter?

1 odpowiedź

+1 głos
odpowiedź 1 października 2017 przez obl Maniak (51,280 p.)

Nie wiem co chcesz osiągnąć, lecz mnie to nie obchodzi. Jeżeli pod Windowsem to o GetKeyState ci chodzi. Podajesz funkcji VK_RETURN jako argument, a ona ci SHORT zwraca posłusznie. Jeżeli enter wciśnięty był to SHORT != 0 się.

P.S.

https://msdn.microsoft.com/pl-pl/library/windows/desktop/ms646301(v=vs.85).aspx

komentarz 1 października 2017 przez randinpa Początkujący (450 p.)

Jeśli chodzi o takie coś:

if(GetKeyState(VK_RETURN) != 0)
        {
          enter = true;
        }

To nwm czemu ale raz to działa a raz nie to znaczy po włączeniu programy jest od razu wywoływana ta funkcja(ta co podałem ją wcześniej z dopiskiem tego kodu co jest wyżek) i czasem wywołanie GetKeyState(VK_RETURN) zwraca liczbę inną niż zero dopiero gdy zostanie wciśnięty klawisz enter a raz funkcja na samym początku zanim zostanie wciśnięty jakikolwiek klawisz zwraca wartość inną niż zero da się to jakoś naprawić??

komentarz 1 października 2017 przez obl Maniak (51,280 p.)

Spróbuj tak:

if(GetKeyState(VK_RETURN) < 0)){
    std::cout<<"ENTER!";
}else{
    std::cout<<"Not ENTER!";
}
komentarz 1 października 2017 przez randinpa Początkujący (450 p.)
Wielkie dzięki już działa widocznie błędem było != 0 bo jak jest < 0 to już za każdym razem działa :D

Podobne pytania

0 głosów
3 odpowiedzi 914 wizyt
0 głosów
1 odpowiedź 491 wizyt
pytanie zadane 20 grudnia 2019 w Visual Basic przez _Pita_ Stary wyjadacz (11,410 p.)
0 głosów
1 odpowiedź 195 wizyt

92,536 zapytań

141,377 odpowiedzi

319,455 komentarzy

61,922 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...