logo

Komandinės eilutės argumentai C

Svarbiausia C funkcija yra pagrindinė() funkcija. Jis dažniausiai apibrėžiamas su grąžinimo tipu int ir be parametrų.

int main() { ... }>

Komandinės eilutės argumentus taip pat galime pateikti C. Komandinės eilutės argumentai yra reikšmės, pateiktos po programos pavadinimo operacinės sistemos komandų eilutės apvalkale. Komandinės eilutės argumentus tvarko C programos funkcija main().



Norėdami perduoti komandinės eilutės argumentus, paprastai apibrėžiame main() su dviem argumentais: pirmasis argumentas yra komandinės eilutės argumentų skaičius o antrasis yra a komandinės eilutės argumentų sąrašas.

Moore mašinos pavyzdžiai

Sintaksė

int main(int argc, char *argv[]) { /* ... */ } or int main(int argc, char **argv) { /* ... */ }>

Čia

    argc (ARGument Count) yra sveikasis kintamasis, kuriame saugomas vartotojo perduodamų komandinės eilutės argumentų skaičius, įskaitant programos pavadinimą. Taigi, jei programai perduodame reikšmę, argc reikšmė būtų 2 (viena argumentui, kita programos pavadinimui)
  • Argc reikšmė turi būti ne neigiama.
  • argv (ARGument Vector) yra simbolių rodyklių masyvas, kuriame pateikiami visi argumentai.
  • Jei argc yra didesnis nei nulis, masyvo elementuose nuo argv[0] iki argv[argc-1] bus rodyklės į eilutes.
  • argv[0] yra programos pavadinimas, po to iki argv[argc-1] kiekvienas elementas yra komandinės eilutės argumentai.

Norėdami geriau suprasti, paleiskite šį kodą savo Linux kompiuteryje.



Pavyzdys

Žemiau pateiktas pavyzdys iliustruoja komandinės eilutės argumentų spausdinimą.

C






// C program named mainreturn.c to demonstrate the working> // of command line arguement> #include> // defining main with arguments> int> main(>int> argc,>char>* argv[])> {> >printf>(>'You have entered %d arguments: '>, argc);> >for> (>int> i = 0; i printf('%s ', argv[i]); } return 0; }>

>

>

Išvestis

You have entered 4 arguments: ./main geeks for geeks>

terminalo įėjimui

$ g++ mainreturn.cpp -o main $ ./main geeks for geeks>

Pastaba: Kiti nuo platformos priklausomi formatai taip pat leidžiami C standartuose; Pavyzdžiui, Unix (nors ir ne POSIX.1) ir Microsoft Visual C++ turi trečiąjį argumentą, nurodantį programos aplinką, kitu atveju pasiekiamą per getenv stdlib.h. Norėdami sužinoti daugiau apie aplinkos kintamuosius, žr. C programą.

Komandinės eilutės argumentų savybės C

  1. Jie perduodami funkcijai main().
  2. Tai yra parametrai / argumentai, pateikiami programai, kai ji iškviečiama.
  3. Jie naudojami programoms valdyti iš išorės, o ne kietai koduoti tas vertes kode.
  4. argv[argc] yra NULL rodyklė.
  5. argv[0] turi programos pavadinimą.
  6. argv[1] nurodo pirmąjį komandos eilutės argumentą, o argv[argc-1] nurodo paskutinį argumentą.

Pastaba: Perduodate visus komandinės eilutės argumentus, atskirtus tarpu, bet jei pačiame argumente yra tarpas, galite perduoti tokius argumentus įdėdami juos į dvigubas arba pavienes kabutes .

Pavyzdys

Žemiau pateikta programa parodo komandinės eilutės argumentų veikimą.

C




// C program to illustrate> // command line arguments> #include> int> main(>int> argc,>char>* argv[])> {> >printf>(>'Program name is: %s'>, argv[0]);> >if> (argc == 1)> >printf>(>' No Extra Command Line Argument Passed '> >'Other Than Program Name'>);> >if> (argc>= 2) {> >printf>(>' Number Of Arguments Passed: %d'>, argc);> >printf>(>' ----Following Are The Command Line '> >'Arguments Passed----'>);> >for> (>int> i = 0; i printf(' argv[%d]: %s', i, argv[i]); } return 0; }>

>

jasmine Davis vaikystėje
>

Išvestis skirtingais scenarijais:

1. Be argumentų: Kai aukščiau pateiktas kodas sukompiliuojamas ir vykdomas nepateikiant jokio argumento, jis sukuria tokią išvestį.

Terminalo įvestis

$ ./a.out>

Išvestis

Program Name Is: ./a.out No Extra Command Line Argument Passed Other Than Program Name>

2. Trys argumentai: Kai aukščiau pateiktas kodas sukompiliuojamas ir vykdomas naudojant tris argumentus, jis sukuria tokią išvestį.

Terminalo įvestis

$ ./a.out First Second Third>

Išvestis

Program Name Is: ./a.out Number Of Arguments Passed: 4 ----Following Are The Command Line Arguments Passed---- argv[0]: ./a.out argv[1]: First argv[2]: Second argv[3]: Third>

3. Vienas argumentas: Kai aukščiau pateiktas kodas sukompiliuojamas ir vykdomas vienu argumentu, atskirtu tarpu, bet dvigubose kabutėse, jis sukuria tokią išvestį.

Terminalo įvestis

$ ./a.out 'First Second Third'>

Išvestis

Program Name Is: ./a.out Number Of Arguments Passed: 2 ----Following Are The Command Line Arguments Passed---- argv[0]: ./a.out argv[1]: First Second Third>

4. Vienas argumentas kabutėse, atskirtas tarpu: Kai aukščiau pateiktas kodas sukompiliuojamas ir vykdomas vienu argumentu, atskirtu tarpu, bet vienose kabutėse, jis sukuria tokią išvestį.

Terminalo įvestis

$ ./a.out 'First Second Third'>

Išvestis

Program Name Is: ./a.out Number Of Arguments Passed: 2 ----Following Are The Command Line Arguments Passed---- argv[0]: ./a.out argv[1]: First Second Third>