logo

Argumenti ukazne vrstice v C

Najpomembnejša funkcija C je funkcija main(). Večinoma je definiran s povratnim tipom int in brez parametrov.

int main() { ... }>

Argumente ukazne vrstice lahko damo tudi v C. Argumenti ukazne vrstice so vrednosti, podane za imenom programa v lupini ukazne vrstice operacijskih sistemov. Argumente ukazne vrstice obravnava funkcija main() programa C.



Za posredovanje argumentov ukazne vrstice običajno definiramo main() z dvema argumentoma: prvi argument je število argumentov ukazne vrstice in drugi je a seznam argumentov ukazne vrstice.

c++ pretvori int v niz

Sintaksa

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

tukaj,

    argc (ARGument Count) je celoštevilska spremenljivka, ki shrani število argumentov ukazne vrstice, ki jih posreduje uporabnik, vključno z imenom programa. Torej, če posredujemo vrednost programu, bi bila vrednost argc 2 (ena za argument in ena za ime programa)
  • Vrednost argc ne sme biti negativna.
  • argv (ARGument Vector) je niz znakovnih kazalcev, ki navaja vse argumente.
  • Če je argc večji od nič, bodo elementi polja od argv[0] do argv[argc-1] vsebovali kazalce na nize.
  • argv[0] je ime programa, od tega do argv[argc-1] je vsak element argument ukazne vrstice.

Za boljše razumevanje zaženite to kodo na vašem računalniku Linux.



Primer

Spodnji primer prikazuje tiskanje argumentov ukazne vrstice.

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; }>

>

>

Izhod

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

za terminalski vhod

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

Opomba: Standardi C dovoljujejo tudi druge formate, odvisne od platforme; na primer, Unix (čeprav ne POSIX.1) in Microsoft Visual C++ imata tretji argument, ki podaja okolje programa, ki je sicer dostopno prek getenv v stdlib.h. Za podrobnosti glejte program C za tiskanje spremenljivk okolja.

Lastnosti argumentov ukazne vrstice v C

  1. Posredujejo se funkciji main().
  2. So parametri/argumenti, ki se posredujejo programu, ko je priklican.
  3. Uporabljajo se za krmiljenje programov od zunaj, namesto da bi te vrednosti trdo kodirali znotraj kode.
  4. argv[argc] je kazalec NULL.
  5. argv[0] vsebuje ime programa.
  6. argv[1] kaže na prvi argument ukazne vrstice in argv[argc-1] kaže na zadnji argument.

Opomba: Vse argumente ukazne vrstice posredujete ločene s presledkom, če pa ima sam argument presledek, lahko takšne argumente posredujete tako, da jih postavite v dvojne ali enojne narekovaje.

Primer

Spodnji program prikazuje delovanje argumentov ukazne vrstice.

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; }>

>

>

Izhod v različnih scenarijih:

1. Brez argumentov: Ko je zgornja koda prevedena in izvedena brez posredovanja nobenega argumenta, proizvede naslednji rezultat.

Terminalni vhod

$ ./a.out>

Izhod

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

2. Trije argumenti: Ko je zgornja koda prevedena in izvedena s tremi argumenti, ustvari naslednji rezultat.

Terminalni vhod

$ ./a.out First Second Third>

Izhod

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. Posamezen argument: Ko je zgornja koda prevedena in izvedena z enim samim argumentom, ločenim s presledkom, vendar znotraj dvojnih narekovajev, ustvari naslednji rezultat.

vstavite v tipkovnico

Terminalni vhod

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

Izhod

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. En argument v narekovajih, ločen s presledkom: Ko je zgornja koda prevedena in izvedena z enim samim argumentom, ločenim s presledkom, vendar znotraj enojnih narekovajev, proizvede naslednji rezultat.

Terminalni vhod

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

Izhod

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>