Autor podstrony: Krzysztof Zajączkowski

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

Layout wykonany przez autora strony, wszelkie prawa zastrzeżone. Jakiekolwiek użycie części lub całości grafik znajdujących się na tej stronie bez pisemnej zgody jej autora surowo zabronione.