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
- Posredujejo se funkciji main().
- So parametri/argumenti, ki se posredujejo programu, ko je priklican.
- Uporabljajo se za krmiljenje programov od zunaj, namesto da bi te vrednosti trdo kodirali znotraj kode.
- argv[argc] je kazalec NULL.
- argv[0] vsebuje ime programa.
- 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>