Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

MENU

Ostatnio zmodyfikowano 2008-11-25 20:05
Autor Wiadomość
Besemir
Temat założony przez niniejszego użytkownika
MENU
» 2008-11-23 19:36:52
Wiec mam taki otóż problem.
C/C++
#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;
        // nie wiem co tu ma byc ;P
        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.
P-2611
DejaVu
» 2008-11-23 19:46:26
C/C++
int znak;
//tu tworzyć zmienne, które mają trzymać swój stan
do
{
    znak = getch();
    switch( znak )
    {
    case 'b':
        //tu jakiś kod...
        break;
    }
} while( znak == 'b' );

P-2612
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:
C/C++
#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: //to takie miejsce do którego można wrócić
    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; //wracamy do naszej etykiety
        }
    }
    getch();
    return( 0 );
}
Ja to zrobiłem za pomocą if, bo moim zdaniem tak jest o wiele łatwiej.

Pozdrawiam, Piotrek. ;)
P-2613
DeBugger
» 2008-11-23 20:25:36
Pietrzuch!
Nie lepiej użyć funkcji?
P-2614
pekfos
» 2008-11-23 20:37:34
według mnie dobrze tylko ciekawi mnie poco to math.h jak go używasz
P-2616
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 "
P-2628
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).
P-2631
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.
P-2633
« 1 » 2
  Strona 1 z 2 Następna strona