MySQL Java JavaScript PHP Python HTML-CSS C-sharp C++ Go

Parametrii funcției main

În temele anterioare, funcția main era definită fără parametri. Totuși, această funcție poate fi definită și cu parametri:

int main(int argc, char* argv[])
{
// instrucțiuni
}

Primul parametru, argc, reprezintă tipul int și stochează numărul de argumente din linia de comandă. Al doilea parametru, argv[], reprezintă un tablou de pointeri și conține toate argumentele transmise din linia de comandă sub formă de șiruri de caractere. Astfel, datorită acestor parametri, putem transmite programului anumite date în momentul rulării lui din consolă.

De exemplu, să definim următorul program:

#include <iostream>

int main(int argc, char* argv[])
{
    // afișăm toate argumentele transmise într-o buclă
    for (int i {}; i < argc; ++i)
    {
        std::cout << argv[i] << std::endl;
    }
}

În acest caz afișăm pur și simplu toate argumentele din linia de comandă în consolă. Compilăm și rulăm programul fără a-i transmite niciun argument:

c:\cpp>g++ hello.cpp -o hello & hello
hello

În cazul meu, codul programului este situat în fișierul "hello.cpp" și este compilat într-un fișier numit hello. După rularea programului, chiar dacă nu i se transmit argumente, tabloul argv[] va conține cel puțin un element – numele fișierului programului. Adică în cazul meu, tabloul va conține un șir "hello". Iar primul parametru, argc, va fi egal cu 1.

Transmitem programului niște argumente:

c:\cpp>g++ hello.cpp -o hello & hello Tom 38
hello
Tom
38

Aici programului, în momentul rulării, i se transmit două valori – "Tom" și "38". Argumentele transmise sunt separate prin spațiu. Chiar dacă este transmis un număr (ca în cazul celui de-al doilea argument), programul îl primește tot sub formă de șir de caractere. Așadar, acum tabloul argv va conține trei elemente.