Argumenty funkcji main

Stronę tą wyświetlono już: 215 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.

Listing 1
  1. #include <iostream>
  2. using namespace std;
  3. 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* */){
  4. for(int k = 0; k < i; k++){
  5. cout<<pt[k]<<endl; // wypisuję elementy tablicy
  6. }
  7. cout<<endl<<"Wcisnij dowolny przycisk, aby zamknac program...";
  8. cin.get();
  9. return 0;
  10. }

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.

Komentarze