-
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
Następne wpisy z tego wątku
- 19.10.12 16:27 kenobi
- 19.10.12 16:33 kenobi
- 19.10.12 16:35 Baranosiu
- 19.10.12 16:45 Baranosiu
- 19.10.12 16:46 kenobi
- 19.10.12 16:50 kenobi
- 19.10.12 17:00 Baranosiu
- 19.10.12 17:54 kenobi
- 19.10.12 18:54 Baranosiu
- 19.10.12 19:22 kenobi
- 19.10.12 20:06 kenobi
- 19.10.12 20:43 Baranosiu
- 20.10.12 01:25 Baranosiu
- 20.10.12 08:57 kenobi
- 20.10.12 10:38 kenobi
Najnowsze wątki z tej grupy
- Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- Ada-Europe - AEiC 2025 early registration deadline imminent
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- ,,Polski przemysł jest w stanie agonalnym" - podkreślił dobitnie, wskazując na brak zamówień.
- Rewolucja w debugowaniu!!! SI analizuje zrzuty pamięci systemu M$ Windows!!!
- Brednie w wiki - hasło Dehomag
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- U nas propagują modę na SI, a w Chinach naukowcy SI po kolei umierają w wieku 40-50lat
- C++. Podróż Po Języku - komentarz
Najnowsze wątki
- 2025-07-05 Shrek, wzrośnie cena prądu :-)
- 2025-07-05 Warszawa => Senior Frontend Developer (React + React Native) <=
- 2025-07-05 Środa Wielkopolska => SAP FI/CO Internal Consultant <=
- 2025-07-05 Środa Wielkopolska => SAP FI/CO Konsultant wewnętrzny <=
- 2025-07-06 Płacić za wodę ze studni
- 2025-07-06 Kolejny inżynier...
- 2025-07-05 UE ustępuje pod presją Trumpa. Socjaldemokraci: oddaliśmy miliardy
- 2025-07-04 od kiedy można obrażać Plastusia i do kiedy Batyra?
- 2025-07-05 UE ustępuje pod presją Trumpa. Socjaldemokraci: oddaliśmy miliardy
- 2025-07-03 Trybik
- 2025-07-04 Renault Symbioz
- 2025-07-04 Architektura IIIRP: Wyjątkowa, a prymitywniejsza niż stodoła pod zaborami
- 2025-07-04 Warszawa => International Freight Forwarder <=
- 2025-07-04 Wrocław => SAP ABAP Developer <=
- 2025-07-04 Warszawa => Mid/Senior IT Recruiter <=