Argumenty funkcji main

Autor podstrony: Krzysztof Zajączkowski

Stronę tą wyświetlono już: 4903 razy

Wcześniej już wspominałem o tym, że funkcja główna main może przyjmować pewne argumenty, o których postaram się pokrótce opowiedzieć. Otóż funkcja ta może przyjmować dwa argumenty, a są nimi:

  1. int - argument ten określa liczbę elementów tablicy, na którą wskazuje drugi argument
  2. char ** - wskaźnik do ciągów znaków.

Dobra - zapewne pomyślisz, ale co w tych ciągach znaków może się zawierać? Odpowiedź jest prostsza niż kilogram drutu miedzianego w kieszeni, a mianowicie taka, że: pierwszym elementem listy jest zawsze pełna ścieżka dostępu do programu znajdującego się na dysku komputera; kolejne argumenty są już zależne od tego, co zrobił użytkownik programu. Jeżeli użytkownik programu zaznaczył kilka plików, złapał je, przeciągnął i upuścił na ikonę programu, to na kolejnych pozycjach tablicy dynamicznej znajdą się ścieżki do tych plików. Istnieje też możliwość przekazania do programu parametrów z poziomu konsoli, albowiem wystarczy podać ścieżkę dostępu do programu np. względną w następujący sposób: mainfu.exe a następnie dodać parametry np. -r lub "C:\plik.txt" bądź oba te elementy oddzielone spacjami aby w liście tablicy znalazły się te elementy.

#include <iostream> using namespace std; int main(int i /* to jest liczba elementów tablicy ciągu znaków char* */, char **pt/* to jest tablica ciągów znaków char* */){ for(int k = 0; k < i; k++){ cout<<pt[k]<<endl; // wypisuję elementy tablicy } cout<<endl<<"Wcisnij dowolny przycisk, aby zamknac program..."; cin.get(); return 0; }

Dla przykładu wywołanie programu z konsoli w następujący sposób: mainfu.exe -r "C:\plik.txt" wyświetli następujący wynik:

mainfu.exe
-r
C:\plik.txt

W powyższym wyniku wyświetlona została względna ścieżka dostępu do programu, ponieważ został on uruchomiony przy użyciu takiego adresu.

Propozycje książek