ESC kończy program (C++)


(Kaczor Chuj) #1

Witam.

Mam do napisania program który wczytuje z klawiatury 20 słów (wpisujemy słowo i naciskamy enter żeby przejść do następnej linii i tak 20 razy) i umieszcza je w tablicy string. Program ma kończyć swoje działanie po tym jak osiągnięta zostanie wartość 20 w pętli albo naciśnięty klawisz ESC..jak napisać funkcję która zakończy program po naciśnięciu klawisza ESC :?:


(Marcindodo) #2

zrób pętle:

while((klawisz=getchar())!='27') Esc to w kodzie ASCII 27


(Kaczor Chuj) #3

A możesz podać przykład tego kodu bo u mnie np twój przykład nie działa :?

string słowo;

for(int i=0;i<20;i++)

{

cin>>słowo;

if(slowo==ESC) to zakoncz petle(break);

}

Dokładnie chodzi o to co powinno sie znaleźć w komendzie if(słowo==ESC) :?:


(Zulowski) #4

tak nie zrobisz, chcesz pobierac cale słowa, ale ESC to nie słowo, tylko 1 znak, który ma kod 27

Powinieneś pobierac dane z klawiatury znak po znaku, jezeli są rozne od esc(27) to poprostu traktowac je jako kolejne litery wyrazu, jezeli natomiast jest to znak esc- zakonczyc pętle.


(Kalin 93) #5

Niee :slight_smile: Nie tak :slight_smile:

string słowo;

for(int i=0;i<20;i++)

{

cin>>słowo[i];

if(slowo==27) break;

}

Albo

#include 

#include 

#include 


using namespace std;


string slowo [20];


int main ()

{

    for (unsigned i = 0 ; i != 20 ; i++)

    { 

        if (getch() == 27) return 0;

        cin >> slowo [i];

    };

}

Masz prawie gotowy kod :wink: Musisz tylko zrobić zeby Ci 1 znak kopiował :wink: Troche musisz pomyśleć


(Kaczor Chuj) #6

{ciach} kalin93 {ciach}, nawet nie wiesz jak pomogłeś, wielkie dzięki =D>