MENU
Ostatnio zmodyfikowano 2008-11-25 20:05
Besemir Temat założony przez niniejszego użytkownika |
MENU » 2008-11-23 19:36:52 Wiec mam taki otóż problem. #include <iostream> #include <conio.h> #include <math.h> #include "console.ddt" using namespace ddt::console; using namespace std; int main() { cout << "MENU" << endl; cout << endl; cout << "by zobaczyc cos innego kliknij [n]" << endl; unsigned char znak = getch(); switch( znak ) { case 110: clrscr(); cout << "by zobaczyc menu klinkij [b]" << endl; break; } getch(); return( 0 ); }
chce aby po kliknięciu b od nowa wszystko co jest w main się zaczęło dziać. ale zęby jak będą tam jakieś zmienne czy coś w tym rodzaju zęby niestracily wartości. |
|
DejaVu |
» 2008-11-23 19:46:26 int znak;
do { znak = getch(); switch( znak ) { case 'b': break; } } while( znak == 'b' );
|
|
lynx |
» 2008-11-23 19:56:13 Tutaj daje przykład jak łatwo rozwiązać to za pomocą etykiet. Często to rozwiązanie jest krytykowane z powodu, że później staje się kod nie czytelny, jednak przy tak krótkim/prostym kodzie nie widzę sensu robić tego inaczej. Rozwiązanie: #include <iostream> #include <conio.h> #include <math.h> #include "console.ddt" using namespace ddt::console; using namespace std; int main() { cout << "MENU" << endl; cout << endl; etykieta: cout << "by zobaczyc cos innego kliknij [n]" << endl; unsigned char znak = getch(); if( znak == 110 ) { clrscr(); cout << "by zobaczyc menu klinkij [b]" << endl; if( getch() == 'b' ) { clrscr(); goto etykieta; } } getch(); return( 0 ); }
Ja to zrobiłem za pomocą if, bo moim zdaniem tak jest o wiele łatwiej. Pozdrawiam, Piotrek. ;) |
|
DeBugger |
» 2008-11-23 20:25:36 Pietrzuch! Nie lepiej użyć funkcji? |
|
pekfos |
» 2008-11-23 20:37:34 według mnie dobrze tylko ciekawi mnie poco to math.h jak go używasz |
|
Besemir Temat założony przez niniejszego użytkownika |
» 2008-11-25 19:49:07 A math.h miałem po prostu dlatego ze zrobiłem sobie kod z bibliotekami żeby to kopiować bo nie chce mi się tego pisać
A i jeszcze 1: Proszę Pana Piotra żeby w kursie opisał to " goto " |
|
DejaVu |
» 2008-11-25 20:34:23 Nie chcę opisywać goto bo tak się nie programuje w C++. To że udostępniono programistom możliwość korzystania z tego, to nie znaczy że należy tego używać. Przyjmij, że jest to zakazana technika, której się nie praktykuje w żadnej firmie zajmującej się wytwarzaniem oprogramowania w C++ (jeśli nawet spotkasz się z takimi zaszłościami w kodzie jak goto, to tylko dlatego, że ktoś dawno dawno temu tak to napisał, bo nie miał prawdopodobnie większej wiedzy programistycznej). |
|
Besemir Temat założony przez niniejszego użytkownika |
» 2008-11-25 21:15:52 A czemu to jest takie zakazane? Niewidze w tym nic złego. |
|
« 1 » 2 |