eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingcoś lajtowego - konsolaRe: coś lajtowego - konsola
  • Data: 2012-10-19 16:05:11
    Temat: Re: coś lajtowego - konsola
    Od: Baranosiu <r...@w...pl> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    Dnia 19.10.2012 kenobi <p...@g...com> napisał/a:
    > W dniu piątek, 19 października 2012 15:14:41 UTC+2 użytkownik Sławomir Szczyrba
    napisał:
    >> They're watching you, kenobi.
    >>
    >> [...]
    >>
    >> > jak wygodnie zrobic tak by ParseCommandline
    >>
    >> > zwracalo rozparsowane argumenty nie tylko
    >>
    >> > w formie komenda i tablica intow tylko
    >>
    >> > w ogolnym wypadku - tj przemieszane numeryki
    >>
    >> > (numery moga byc wczytywane jako ogolne tj double to sobie zrzutuje na inta albo
    nie)
    >>
    >> > oraz stringi
    >>
    >> >
    >>
    >> > slowem,
    >>
    >> > tak zeby mozna bylo tez obslugiwac stringi
    >>
    >> >
    >>
    >> > np
    >>
    >> >
    >>
    >> > costam 10 10 "ala ma kota"
    >>
    >> >
    >>
    >> > ?
    >>
    >> >
    >>
    >> Zobacz sobie jak to jest tu zrobione.
    >>
    >> http://dunkels.com/adam/ubasic/
    >>
    >>
    > nie chce mi sie w to wczytywac, [choc o tyle
    > fajne ze uswiadamia czym jest basic (przynajmniej ten w starym stylu jak c c64,
    > duzo roboty/kodu to to faktycznie nie jest ]
    >
    > nie mowie ze to jest trudne tylko podalem
    > jako ciekawostke bo o ile z argumentami
    > czysto liczbowymi mozna dac "char* command"
    > i "double arg[]" to w przypadku mieszanych
    > trzeba chyba cos w stylu "char* c = getCommand(); double arg1 = getNumber(); double
    arg2 = getNumber(); char* arg3 = getString();" itd
    >

    Możesz pobrać wszystko jako char* a potem sobie konwertować w razie
    potrzeby na liczby poprzez atoi czy atof. Możesz też wykorzystać
    gotowe interpretery prostych języków (typu lua). Możesz też
    zdefiniować gramatykę i wykorzystać bisona i flexa do automatycznego
    wygenerowania parserów itd. Serio nie widzę tu żadnych "ciekawostek"
    :D Nawet "na piechotę" to po wprowadzeniu całej linii przez
    użytkownika tnę ją po białych znakach na kawałki używając strtok i na
    podstawie pierwszego "wyrazu" decyduję co zrobić z pozostałymi, na
    przykład jak ktoś wpisze "rysujkolo 10 20 5", to po pocięciu tego na
    kawałki dostanę powiedzmy x[0]="rysujkolo", x[1]="10", x[2]="20", x[3]="5".
    x[0] zawiera "rysujkolo", więc wywoluje funkcje (o deklaracji na
    przyklad rysuj_kolo(int,int,int);) w ten sposob:
    rysuj_kolo(atoi(x[1]),atoi(x[2]),atoi(x[3]));
    i po sprawie.

    Jeśli natomiast nie chcesz mieć osobnych funkcji rysuj_kolo(),
    rysuj_kwardat() itd., tylko chcesz mieć jedną funkcję rysuj()
    (obsługującą różne "konfiguracje" argumentów), to jeśli piszesz to w
    C, to możesz użyć mechanizmu z stdarg.h, a jeśli piszesz w C++, to
    załatwić sprawę różnych argumentów poprzez przeciążanie funkcji :D

    Moim zdaniem pharsowanie nie powinno się odbywać w funkcji
    pobierającej dane z konsoli, tylko konsola powinna pobierać na
    przykład całą linię i wysyłać ją (jako jeden string) do pharsera,
    który już sobie zrobi z tym co będzie chciał :D

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: