Wprowadzanie danych do programu z linii poleceń.
Ostatnio zmodyfikowano 2015-11-18 22:07
ProgrAmator96 Temat założony przez niniejszego użytkownika |
Wprowadzanie danych do programu z linii poleceń. » 2015-11-16 18:27:51 Witam. Chcę napisać taki program: "Program generujący kalendarz na zadany rok. Numer roku podawany jest po przełączniku -r. Pierwszy dzień tygodnia jest ustawiany po przełączniku -d jako pojedynczy znak: n – niedziela, o – poniedziałek, w – wtorek, s – środa, c – czwartek, t – piątek, b – sobota. Gotowy kalendarz jest zapisywany do pliku wyjściowego, którego nazwa podana jest po przełączniku -o. Przykładowe wywołanie programu: program.exe -o kal2013 -d o -r 2013 Program jest uruchamiany z linii poleceń. Parametry przekazywane są do programu z linii poleceń."
Dopiero zapoznaje się z językiem C++ i jest to pierwszy język programowania, którego się uczę. W związku z tym mam podstawowe pytanie: W jaki sposób odbywa się wczytywanie parametrów z konsoli do programu i z czego ewentualnie powinna się składać funkcja to umożliwiająca ?
|
|
Gibas11 |
» 2015-11-16 19:42:24 Żadnej funkcji nie trzeba, poza main oczywiście. :) Sprawa jest banalna: int main( int argc, char ** argv ) { for( int i = 0; i < argc; i++ ) cout << argv[ i ] << endl; return 0; }
int main( int argc, char ** argv ) Deklaracja funkcji main przyjmującej argumenty przechowujące kolejno ilość argumentów i tablicę ciągów znaków. Program wypisze na wyjściu kolejno wszystkie argumenty, przy czym należy pamiętać, że pierwszym (argv[0]) zawsze jest nazwa programu. Ps. Google nie boli, możesz czasem spróbować. |
|
michal11 |
» 2015-11-16 19:43:09 int main( int argc, char * argv[] ) Tak powinna wyglądać twoja funkcja main, gdzie argc będzie liczbą określającą ilość parametrów (dokładnie słów - c-stringow) przekazanych w linii poleceń, a kolejne pola tablicy argv to kolejne argumenty przekazane w linii poleceń, przykład: ./prog 1 aa -3 -asd wtedy: argc = 5; argv[ 0 ] = "./prog"; argv[ 1 ] = "1"; argv[ 2 ] = "aa"; argv[ 3 ] = "-3"; argv[ 4 ] = "-asd":
żeby łatwiej korzystać z "przełączników" możesz użyć funkcji getopt(). |
|
Gibas11 |
» 2015-11-16 19:48:05 @up W przykładowym poleceniu podał program.exe , unistd.h chyba odpada. :/ |
|
ProgrAmator96 Temat założony przez niniejszego użytkownika |
» 2015-11-18 22:07:19 Dziękuję wam bardzo, już ogarnąłem sposób. |
|
« 1 » |